Professional Documents
Culture Documents
// Version: 1.1.5
// Build Date: 20-April-21
// Author: Kuma @ hbanz
// Website: hbanz.org/realsoccer
// * Real Soccer Revolution (RSR)
// Changelog:
// 1.0 Official Release
// 1.1 Powershot mode added with toggle (credit to Winky)
//
// =========================================================================
// =========================================================================
// Usefull Links
// ------------------------------------------------
// https://www.haxball.com/headless
// https://github.com/haxball/haxball-issues/wiki/Headless-Host
// https://www.haxball.com/headlesstoken
// https://www.haxball.com/playerauth
// =========================================================================
//else if (Math.abs(teamR.length - teamB.length) == teamS.length && teamS.length >
0) {
// const n = Math.abs(teamR.length - teamB.length);
return realSoccerMap;
}
var realSoccerMap =
`{"name":"MAP","width":1300,"height":670,"spawnDistance":560,"bg":
{"type":"grass","width":1150,"height":600,"kickOffRadius":180,"cornerRadius":0,"col
or":"`+mapBGColor+`"},"playerPhysics":
{"bCoef":0.3,"invMass":0.5,"damping":0.96,"acceleration":0.12,"kickingAcceleration"
:0.07,"kickingDamping":0.96,"kickStrength":5.68},"ballPhysics":
{"radius":8.5,"bCoef":0.5,"invMass":1.05,"damping":0.986,"color":"`+colorball+`","c
Mask":["all"],"cGroup":["ball"]},"vertexes":
[{"x":0,"y":675,"trait":"kickOffBarrier"},{"x":0,"y":180,"trait":"kickOffBarrier"},
{"x":0,"y":-180,"trait":"kickOffBarrier"},{"x":0,"y":-
675,"trait":"kickOffBarrier"},{"x":1150,"y":320,"trait":"line"},
{"x":840,"y":320,"trait":"line"},{"x":1150,"y":-320,"trait":"line"},{"x":840,"y":-
320,"trait":"line"},{"x":1150,"y":180,"trait":"line"},
{"x":1030,"y":180,"trait":"line"},{"x":1150,"y":-180,"trait":"line"},
{"x":1030,"y":-180,"trait":"line"},{"x":840,"y":-130,"trait":"line","curve":-130},
{"x":840,"y":130,"trait":"line","curve":-130},{"x":-1150,"y":-320,"trait":"line"},
{"x":-840,"y":-320,"trait":"line"},{"x":-1150,"y":320,"trait":"line"},{"x":-
840,"y":320,"trait":"line"},{"x":-1150,"y":-175,"trait":"line"},{"x":-1030,"y":-
175,"trait":"line"},{"x":-1150,"y":175,"trait":"line"},{"x":-
1030,"y":175,"trait":"line"},{"x":-840,"y":130,"trait":"line","curve":-130},{"x":-
840,"y":-130,"trait":"line","curve":-130},{"x":935,"y":3,"trait":"line"},
{"x":935,"y":-3,"trait":"line"},{"x":-935,"y":3,"trait":"line"},{"x":-935,"y":-
3,"trait":"line"},{"x":-1150,"y":570,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":-1120,"y":600,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":-1120,"y":-600,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":-1150,"y":-570,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":1120,"y":600,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":1150,"y":570,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":1150,"y":-570,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":1120,"y":-600,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"x":0,"y":180,"bCoef":0.1,"cMask":["red","blue"],"cGroup":
["blueKO"],"trait":"kickOffBarrier","curve":-180},{"x":0,"y":-
180,"bCoef":0.1,"cMask":["red","blue"],"cGroup":
["redKO"],"trait":"kickOffBarrier","curve":180},{"x":0,"y":180,"bCoef":0.1,"cMask":
["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","curve":180},{"x":-
1030,"y":-40,"bCoef":-5.7,"cMask":["ball"],"cGroup":
["c0"],"trait":"line","curve":70,"color":"576C46","vis":false},{"x":-
1030,"y":40,"bCoef":-5.7,"cMask":["ball"],"cGroup":
["c0"],"trait":"line","curve":70,"color":"576C46","vis":false},{"x":1030,"y":-
40,"bCoef":-5.7,"cMask":["ball"],"cGroup":["c0"],"trait":"line","curve":-
70,"color":"576C46","vis":false},{"x":1030,"y":40,"bCoef":-5.7,"cMask":
["ball"],"cGroup":["c0"],"trait":"line","curve":-70,"color":"576C46","vis":false},
{"x":1030,"y":-40,"trait":"line","color":"576C46"},
{"x":1030,"y":40,"trait":"line","color":"576C46"},{"x":-1030,"y":-
40,"trait":"line","color":"576C46"},{"x":-
1030,"y":40,"trait":"line","color":"576C46"},{"x":0,"y":3,"trait":"line"},
{"x":0,"y":-3,"trait":"line"},{"x":-1300,"y":-460,"bCoef":0,"cMask":
["c1"],"cGroup":["red","blue"],"color":"ec644b","vis":false},{"x":1300,"y":-
460,"bCoef":0,"cMask":["c1"],"cGroup":["red","blue"],"color":"ec644b","vis":false},
{"x":-1300,"y":460,"bCoef":0,"cMask":["c1"],"cGroup":
["red","blue"],"color":"ec644b","vis":false},{"x":1300,"y":460,"bCoef":0,"cMask":
["c1"],"cGroup":["red","blue"],"color":"ec644b","vis":false},{"x":-1295,"y":-
320,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-304,"y":-324,"cMask":
["c0"],"cGroup":["red","blue"],"_selected":"segment"},{"x":-304,"y":316,"cMask":
["c0"],"cGroup":["red","blue"],"_selected":"segment"},{"x":-1295,"y":320,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":1295,"y":-320,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":306,"y":-319,"cMask":["c0"],"cGroup":["red","blue"]},
{"x":306,"y":321,"cMask":["c0"],"cGroup":["red","blue"]},{"x":1295,"y":320,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":-1150,"y":-124,"bCoef":0.1,"cMask":
["ball","red","blue"]},{"x":-1210,"y":-124,"bCoef":0.1,"cMask":
["red","blue"],"bias":0,"curve":5},{"x":-1150,"y":124,"bCoef":0.1,"cMask":
["ball","red","blue"]},{"x":-1210,"y":124,"bCoef":0.1,"cMask":
["red","blue"],"bias":0,"curve":5},{"x":-1250,"y":-158,"bCoef":0,"cMask":["ball"]},
{"x":-1250,"y":158,"bCoef":0,"cMask":["ball"]},
{"x":1150,"y":124,"bCoef":0.1,"cMask":["ball","red","blue"]},
{"x":1210,"y":124,"bCoef":0.1,"cMask":["red","blue"],"curve":-5},{"x":1150,"y":-
124,"bCoef":0.1,"cMask":["ball","red","blue"]},{"x":1210,"y":-
124,"bCoef":0.1,"cMask":["red","blue"],"curve":-5},{"x":1250,"y":-
158,"bCoef":0,"cMask":["ball"]},{"x":1250,"y":158,"bCoef":0,"cMask":["ball"]},
{"x":-327,"y":-457,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-303,"y":-
327,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-394,"y":-595,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":-327,"y":-461,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":-403,"y":-669,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-
395,"y":-596,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-304,"y":316,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":-328,"y":459,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":-328,"y":460,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-
379,"y":600,"cMask":["c0"],"cGroup":["red","blue"]},{"x":-379,"y":601,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":-384,"y":668,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":307.61590626147046,"y":319.0654264152458,"cMask":
["c0"],"cGroup":["red","blue"]},
{"x":323.9057685035773,"y":453.0528899636434,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":306.4664672761953,"y":322.01140503348614,"cMask":
["c0"],"cGroup":["red","blue"]},
{"x":383.88891087287516,"y":594.2443296174146,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":323.7048331685431,"y":457.04783989964193,"cMask":
["c0"],"cGroup":["red","blue"]},
{"x":389.16024453074044,"y":668.6030079372144,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":384.83741452311625,"y":595.2933009351727,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":330,"y":-461,"cMask":["c0"],"cGroup":
["red","blue"]},{"x":306,"y":-318,"cMask":["c0"],"cGroup":["red","blue"]},
{"x":388,"y":-600,"cMask":["c0"],"cGroup":["red","blue"]},{"x":334,"y":-
465,"cMask":["c0"],"cGroup":["red","blue"]},{"x":394,"y":-667,"cMask":
["c0"],"cGroup":["red","blue"]},{"x":388,"y":-600,"cMask":["c0"],"cGroup":
["red","blue"]}],"segments":[{"v0":0,"v1":1,"trait":"kickOffBarrier"},
{"v0":2,"v1":3,"trait":"kickOffBarrier"},{"v0":4,"v1":5,"trait":"line","y":320},
{"v0":5,"v1":7,"trait":"line","x":840},{"v0":6,"v1":7,"trait":"line","y":-320},
{"v0":8,"v1":9,"trait":"line","y":180},{"v0":9,"v1":11,"trait":"line","x":1030},
{"v0":10,"v1":11,"trait":"line","y":-180},{"v0":12,"v1":13,"curve":-
130,"trait":"line","x":840},{"v0":14,"v1":15,"trait":"line","y":-320},
{"v0":15,"v1":17,"trait":"line","x":-840},{"v0":16,"v1":17,"trait":"line","y":320},
{"v0":18,"v1":19,"trait":"line","y":-175},{"v0":19,"v1":21,"trait":"line","x":-
1030},{"v0":20,"v1":21,"trait":"line","y":175},{"v0":22,"v1":23,"curve":-
130,"trait":"line","x":-840},{"v0":24,"v1":25,"curve":-180,"trait":"line","x":935},
{"v0":26,"v1":27,"curve":-180,"trait":"line","x":-935},
{"v0":24,"v1":25,"curve":180,"trait":"line","x":935},
{"v0":26,"v1":27,"curve":180,"trait":"line","x":-935},
{"v0":24,"v1":25,"curve":90,"trait":"line","x":935},
{"v0":26,"v1":27,"curve":90,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":-
90,"trait":"line","x":935},{"v0":26,"v1":27,"curve":-90,"trait":"line","x":-935},
{"v0":24,"v1":25,"trait":"line","x":935},{"v0":26,"v1":27,"trait":"line","x":-935},
{"v0":28,"v1":29,"curve":90,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"v0":30,"v1":31,"curve":90,"bCoef":-2.9,"cMask":
["ball"],"cGroup":["c0"],"trait":"line"},{"v0":32,"v1":33,"curve":90,"bCoef":-
2.9,"cMask":["ball"],"cGroup":["c0"],"trait":"line"},
{"v0":34,"v1":35,"curve":90,"bCoef":-2.9,"cMask":["ball"],"cGroup":
["c0"],"trait":"line"},{"v0":37,"v1":36,"curve":-
180,"vis":false,"bCoef":0.1,"cGroup":["blueKO"],"trait":"kickOffBarrier"},
{"v0":39,"v1":40,"curve":70,"vis":false,"color":"576C46","bCoef":-5.7,"cMask":
["ball"],"cGroup":["c0"],"trait":"line","x":-1030},{"v0":41,"v1":42,"curve":-
70,"vis":false,"color":"576C46","bCoef":-5.7,"cMask":["ball"],"cGroup":
["c0"],"trait":"line","x":1030},
{"v0":37,"v1":38,"curve":180,"vis":false,"bCoef":0.1,"cMask":
["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier"},
{"v0":43,"v1":44,"vis":true,"color":"576C46","trait":"line","x":1030},
{"v0":45,"v1":46,"vis":true,"color":"576C46","trait":"line","x":-1030},
{"v0":47,"v1":48,"curve":-180,"trait":"line","x":-935},
{"v0":47,"v1":48,"curve":180,"trait":"line","x":-935},
{"v0":47,"v1":48,"curve":90,"trait":"line","x":-935},{"v0":47,"v1":48,"curve":-
90,"trait":"line","x":-935},{"v0":47,"v1":48,"trait":"line","x":-935},
{"v0":49,"v1":50,"vis":false,"color":"ec644b","bCoef":0,"cMask":["c1"],"cGroup":
["red","blue"],"y":-460},
{"v0":51,"v1":52,"vis":false,"color":"ec644b","bCoef":0,"cMask":["c1"],"cGroup":
["red","blue"],"y":460},{"v0":53,"v1":54,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":54,"v1":55,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"],"_selected":true},
{"v0":55,"v1":56,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":57,"v1":58,"vis":false,"cMask":["c0"],"cGroup":
["red","blue"]},{"v0":58,"v1":59,"vis":false,"cMask":["c0"],"cGroup":
["red","blue"],"curve":0},{"v0":59,"v1":60,"vis":false,"cMask":["c0"],"cGroup":
["red","blue"]},{"v0":61,"v1":62,"color":"FFFFFF","bCoef":0.1,"cMask":
["ball","red","blue"],"y":-124},
{"v0":63,"v1":64,"color":"FFFFFF","bCoef":0.1,"cMask":
["ball","red","blue"],"y":124},
{"v0":64,"v1":62,"curve":5,"color":"FFFFFF","bCoef":0.1,"cMask":
["ball","red","blue"],"bias":0},
{"v0":62,"v1":65,"color":"FFFFFF","bCoef":0,"cMask":["ball"]},{"v0":64,"v1":66,"
color":"FFFFFF","bCoef":0,"cMask":["ball"]},
{"v0":67,"v1":68,"color":"FFFFFF","bCoef":0.1,"cMask":
["ball","red","blue"],"y":124},
{"v0":69,"v1":70,"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"y":-
124},{"v0":68,"v1":70,"curve":-5,"color":"FFFFFF","bCoef":0.1,"cMask":
["ball","red","blue"]},{"v0":70,"v1":71,"color":"FFFFFF","bCoef":0,"cMask":
["ball"]},{"v0":68,"v1":72,"color":"FFFFFF","bCoef":0,"cMask":["ball"]},
{"v0":73,"v1":74,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":75,"v1":76,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":77,"v1":78,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":79,"v1":80,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":81,"v1":82,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":83,"v1":84,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":86,"v1":87,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":88,"v1":89,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":90,"v1":91,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":92,"v1":93,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]},
{"v0":94,"v1":95,"vis":false,"color":"ec644b","cMask":["c0"],"cGroup":
["red","blue"]},{"v0":96,"v1":97,"vis":false,"color":"ec644b","cMask":
["c0"],"cGroup":["red","blue"]}],"goals":[{"p0":[-1161.45,124],"p1":[-1161.45,-
124],"team":"red"},{"p0":[1161.45,124],"p1":[1161.45,-
124],"team":"blue","radius":0,"invMass":1}],"discs":[{"radius":0,"invMass":0,"pos":
[-1311,-19],"color":"ffffffff","bCoef":0,"cMask":["red"],"cGroup":["ball"]},
{"radius":0,"invMass":0,"pos":[-1310,29],"color":"ffffffff","bCoef":0,"cMask":
["blue"],"cGroup":["ball"]},{"radius":0,"invMass":0,"pos":[-
1308,62],"color":"ffffffff","bCoef":0,"cMask":["red","blue"],"cGroup":["ball"]},
{"radius":2.7,"pos":[-1150,600],"cGroup":["ball"],"trait":"cornerflag"},
{"radius":2.7,"pos":[1150,-600],"cGroup":["ball"],"trait":"cornerflag"},
{"radius":2.7,"pos":[1150,600],"cGroup":["ball"],"trait":"cornerflag"},
{"radius":5,"invMass":0,"pos":[-1150,-124],"bCoef":0.5,"trait":"goalPost"},
{"radius":5,"invMass":0,"pos":[-1150,124],"bCoef":0.5,"trait":"goalPost"},
{"radius":2,"invMass":0,"pos":[-1250,-
158],"color":"000000","bCoef":1,"trait":"goalPost"},{"radius":2,"invMass":0,"pos":
[-1250,158],"color":"000000","bCoef":1,"trait":"goalPost"},
{"radius":5,"invMass":0,"pos":[1150,-124],"bCoef":0.5,"trait":"goalPost"},
{"radius":5,"invMass":0,"pos":[1150,124],"bCoef":0.5,"trait":"goalPost"},
{"radius":2,"invMass":0,"pos":[1250,-
158],"color":"000000","bCoef":1,"trait":"goalPost"},{"radius":2,"invMass":0,"pos":
[1250,158],"color":"000000","bCoef":1,"trait":"goalPost"},{"radius":2.7,"pos":[-
1150,-600],"cGroup":["ball"],"trait":"cornerflag"},{"radius":0,"pos":[-1149,-
460],"cMask":["none"]},{"radius":0,"pos":[1149,-460],"cMask":["none"]},
{"radius":0,"pos":[-1149,-460],"cMask":["none"]},{"radius":0,"pos":[1149,-
460],"cMask":["none"]},{"radius":0,"pos":[-1149,460],"cMask":["none"]},
{"radius":0,"pos":[1149,460],"cMask":["none"]},{"radius":0,"pos":[-
1149,460],"cMask":["none"]},{"radius":0,"pos":[1149,460],"cMask":
["none"]}],"planes":[{"normal":[0,1],"dist":-627,"bCoef":0,"cGroup":
["ball"],"trait":"ballArea"},{"normal":[0,-1],"dist":-627,"bCoef":0,"cGroup":
["ball"],"trait":"ballArea"},{"normal":[0,1],"dist":-670,"bCoef":0},{"normal":[0,-
1],"dist":-673,"bCoef":0},{"normal":[1,0],"dist":-1300,"bCoef":0},{"normal":[-
1,0],"dist":-1300,"bCoef":0.1},{"normal":[1,0],"dist":-1230,"bCoef":0,"cMask":
["ball"],"cGroup":["ball"]},{"normal":[-1,0],"dist":-1230,"bCoef":0,"cMask":
["ball"],"cGroup":["ball"]}],"traits":{"ballArea":{"vis":false,"bCoef":0,"cMask":
["ball"],"cGroup":["ball"]},"goalPost":{"radius":5,"invMass":0,"bCoef":1,"cGroup":
["ball"]},"rightNet":{"radius":0,"invMass":1,"bCoef":0,"cGroup":
["ball","c3"]},"leftNet":{"radius":0,"invMass":1,"bCoef":0,"cGroup":
["ball","c2"]},"stanchion":{"radius":3,"invMass":0,"bCoef":3,"cMask":
["none"]},"cornerflag":
{"radius":3,"invMass":0,"bCoef":0.2,"color":"FFFF00","cMask":
["ball"]},"reargoalNetleft":{"vis":true,"bCoef":0.1,"cMask":
["ball","red","blue"],"curve":10,"color":"C7E6BD"},"reargoalNetright":
{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":-
10,"color":"C7E6BD"},"sidegoalNet":{"vis":true,"bCoef":1,"cMask":
["ball","red","blue"],"color":"C7E6BD"},"kickOffBarrier":
{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":
["red","blue"]},"line":{"vis":true,"cMask":[],"color":"C7E6BD"}},"joints":
[{"d0":16,"d1":17,"strength":"rigid","color":"ec7458","length":null},
{"d0":18,"d1":19,"strength":"rigid","color":"48bef9","length":null},
{"d0":20,"d1":21,"strength":"rigid","color":"ec7458","length":null},
{"d0":22,"d1":23,"strength":"rigid","color":"48bef9","length":null}],"redSpawnPoint
s":[],"blueSpawnPoints":[],"canBeStored":false}`;
// ------------------------------------------------
// Global Variables
// ------------------------------------------------
var roomName = "⚽ Rᴇᴀʟ Sᴏᴄᴄᴇʀ ⚽";
var roomPassword = null;
var maxPlayers = 20;
var roomPublic = false;
var token = "";
var roomLink = "";
var gameTime = 10; //default game time if 0 is selected
var map = "RSR";
var superAdmins = [];
var rolePro = [];
var roleTa = [];
var roleToxic = [];
var roleVipPro = [];
var roleVipPro2 = [];
var JMap = JSON.parse(realSoccerMap);
function initPlayerStats(player){
}
// Team //
var teams = ["spectators","red","blue"];
function movePlayersToTeams(player,message){
var team = parseInt(message.split(" ")[1]);
var players = room.getPlayerList();
if(player.admin == true){
if(0 <= team && team <= 2){
players.forEach(p => room.setPlayerTeam(p.id,team));
room.sendAnnouncement("Tất cả người chơi đã bị chuyển qua " + teams[team]
+ " bởi " + player.name,null,0x00FF00,"bold",0);
}
else{
room.sendAnnouncement("ID Team không hợp
lệ!",player.id,0xFFFF00,"bold",1);
}
}
else{
room.sendAnnouncement("You have no authorization to move players to
teams!",player.id,0xFF0000,"bold",2);
}
}
// chat
var messageColors = {
superadmin: 0xfff000,
admin: 0x66ff00,
pro: 0x00ffff,
vippro: 0x00ffff,
red: 0xEB3636,
blue: 0x0fc0fc,
spec: 0xFFFFFF
};
var statusplay = " [Đang đá] ";
var statusreserve = "🔰";
var prefixsuperadmin = "👑"
var prefixadmin = "👑";
var prefixpro = "⭐";
var prefixvippro = "🌟";
var prefixtoxic = "🤡";
var prefixta = "Tạ";
var prefixvippro2 = "🏅"
var prefixred = "🔴";
var prefixblue = "🔵";
var messageTarget = null;
var messageFonts = {normal: "normal", bold: "bold", italic: "italic", small:
"small", small_bold: "small-bold", small_italic: "small-italic"};
var messageSounds = {nothing: 0, normal: 1, highlight: 2};
// color random
/* var teams = [
{ ID: 1, name: "1", uniform: [{ angle: 55, mainColor: [0xC4D6E9, 0x7E8FA1,
0xC4D6E9], avatarColor: 0x08070F }, { angle: 10, mainColor: [0x18202B, 0x0C3F51,
0x18202B], avatarColor: 0xF9812D }] },
{ ID: 2, name: "2", uniform: [{ angle: 45, mainColor: [0x2E5FC5, 0x454569,
0x2E5FC5], avatarColor: 0xE4282D }, { angle: 60, mainColor: [0x000305, 0xFFFFFF,
0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 3, name: "3", uniform: [{ angle: 45, mainColor: [0x252B38, 0x333A44,
0x252B38], avatarColor: 0xFFFFFF }, { angle: 45, mainColor: [0x9B3D58, 0xB0436C,
0x9B3D58], avatarColor: 0xFFFFFF }] },
{ ID: 4, name: "4", uniform: [{ angle: 95, mainColor: [0x9A2734, 0xBF2E2F,
0xBF2E2F], avatarColor: 0xFAF9FA }, { angle: 0, mainColor: [0x141217, 0xB9BFD7],
avatarColor: 0x878695 }] },
{ ID: 5, name: "5", uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0x8E5D5D,
0xFFFFFF], avatarColor: 0x451517 }, { angle: 0, mainColor: [0xFF0000, 0x000000,
0xFF1212], avatarColor: 0xFFFFFF }] },
{ ID: 6, name: "6", uniform: [{ angle: 60, mainColor: [0xFFDE3B, 0xFF9538,
0xFF5A30], avatarColor: 0xFFFFFF }, { angle: 60, mainColor: [0xFF4C30, 0xE01919,
0xA81919], avatarColor: 0xFFFFFF }] },
{ ID: 7, name: "7", uniform: [{ angle: 0, mainColor: [0x060B2B, 0xBCBCC6,
0x060B2B], avatarColor: 0xFFFFFF }, { angle: 0, mainColor: [0x241944, 0x12151C,
0x241944], avatarColor: 0xa27546 }] },
{ ID: 8, name: "8", uniform: [{ angle: 45, mainColor: [0x750087, 0xA100BA],
avatarColor: 0xFFFFFF }, { angle: 0, mainColor: [0xE3DB00, 0xBFBF00, 0xA19600],
avatarColor: 0xFFFFFF }] },
{ ID: 9, name: "9", uniform: [{ angle: 45, mainColor: [0xFFFFFF, 0xB4EDF8,
0xFFFFFF], avatarColor: 0xF2A3F5A }, { angle: 45, mainColor: [0xCC1385, 0xF0F0F0,
0xCC1385], avatarColor: 0x030303 }] },
{ ID: 10, name: "10", uniform: [{ angle: 90, mainColor: [0xFA99F7, 0xF8C7FF,
0xFFFFFF], avatarColor: 0x000000 }, { angle: 60, mainColor: [0x0080FF, 0x2B0B77],
avatarColor: 0xFFFFFF }] },
{ ID: 11, name: "11", uniform: [{ angle: 140, mainColor: [0x000000, 0xBF0000,
0x000000], avatarColor: 0xADAD47 }, { angle: 0, mainColor: [0xA100FF, 0xFFFFFF],
avatarColor: 0x000000 }] },
{ ID: 12, name: "12", uniform: [{ angle: 0, mainColor: [0x700000, 0x00058A,
0x700000], avatarColor: 0xFFEE03 }, { angle: 0, mainColor: [0x004182, 0x000000,
0x004182], avatarColor: 0xFFFFFF }] },
{ ID: 13, name: "13", uniform: [{ angle: 60, mainColor: [0xF7FF00, 0x776700,
0x303300], avatarColor: 0xFFFFFF }, { angle: 60, mainColor: [0xA100FF, 0x430077,
0x250033], avatarColor: 0xFFFFFF }] },
{ ID: 14, name: "14", uniform: [{ angle: 60, mainColor: [0x11FF00, 0x047700,
0x073300], avatarColor: 0xFFFFFF }, { angle: 60, mainColor: [0xFFFFFF, 0x777777,
0x333333], avatarColor: 0x2E8FFF }] },
{ ID: 14, name: "14", uniform: [{ angle: 0, mainColor: [0x0080FF, 0xF8FFF7,
0x0080FF], avatarColor: 0x000000 }, { angle: 0, mainColor: [0x004077, 0xFFF700,
0x004077], avatarColor: 0xFFFFFF }] },
]; */
var teams = [
{ ID: 1, shortName: "trn", longName: "KF Tirana", country: "Albania", uniform:
[{ angle: 0, mainColor: [0x0059AB, 0xFFFFFF, 0x0059AB], avatarColor: 0xFFCA03 },
{ angle: 0, mainColor: [0xFFCA03], avatarColor: 0x0059AB }] },
{ ID: 2, shortName: "boca", longName: "Club Atlético Boca Juniors", country:
"Argentina", uniform: [{ angle: 0, mainColor: [0x103F79, 0xF3B229, 0x103F79],
avatarColor: 0xFFFFFF }, { angle: 0, mainColor: [0xFFFFFF], avatarColor:
0x103F79 }] },
{ ID: 3, shortName: "rvp", longName: "Club Atlético River Plate", country:
"Argentina", uniform: [{ angle: 30, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF],
avatarColor: 0x000000 }, { angle: 0, mainColor: [0x000000, 0x404040, 0x000000],
avatarColor: 0xFF0000 }] },
{ ID: 4, shortName: "mlb", longName: "Melbourne City FC", country: "Australia",
uniform: [{ angle: 0, mainColor: [0x7AB2E1], avatarColor: 0xE31934 }, { angle: 0,
mainColor: [0x000000], avatarColor: 0xE31934 }] },
{ ID: 5, shortName: "slz", longName: "FC Red Bull Salzburg", country:
"Austria", uniform: [{ angle: 15, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000],
avatarColor: 0x000000 }, { angle: 15, mainColor: [0x000080, 0xFFFF00, 0x000080],
avatarColor: 0xFFFFFF }] },
{ ID: 6, shortName: "sgrz", longName: "SK Sturm Graz", country: "Austria",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0x000000, 0xFFFFFF], avatarColor:
0x00C000 }, { angle: 0, mainColor: [0x000000], avatarColor: 0x00C000 }] },
{ ID: 7, shortName: "bate", longName: "FK BATE Borisov", country: "Belarus",
uniform: [{ angle: 0, mainColor: [0xFFFF00, 0x0080FF, 0xFFFF00], avatarColor:
0x000000 }, { angle: 0, mainColor: [0xFFFF00], avatarColor: 0x0080FF }] },
{ ID: 8, shortName: "gml", longName: "FK Gomel", country: "Belarus", uniform:
[{ angle: 0, mainColor: [0xFFFFFF, 0x00C000, 0xFFFFFF], avatarColor: 0x000000 },
{ angle: 0, mainColor: [0x000000, 0x00FF00, 0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 9, shortName: "clb", longName: "Club Brugge KV", country: "Belgium",
uniform: [{ angle: 0, mainColor: [0x000000, 0x0000FF, 0x000000], avatarColor:
0xFFFFFF }, { angle: 45, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x0000FF }] },
{ ID: 10, shortName: "gnt", longName: "KAA Gent", country: "Belgium", uniform:
[{ angle: 0, mainColor: [0x0000FF], avatarColor: 0xFFFFFF }, { angle: 0, mainColor:
[0xFFFF00], avatarColor: 0x0000FF }] },
{ ID: 11, shortName: "gnk", longName: "KRC Genk", country: "Belgium", uniform:
[{ angle: 0, mainColor: [0x000080, 0x0000FF, 0x000080], avatarColor: 0xFFFFFF },
{ angle: 90, mainColor: [0x000000, 0xFFFFFF, 0x000000], avatarColor: 0x0000FF }] },
{ ID: 12, shortName: "ant", longName: "Royal Antwerp FC", country: "Belgium",
uniform: [{ angle: 90, mainColor: [0xC00000, 0xFF0000, 0xC00000], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0xFFFF00, 0xFFFF00, 0x000000], avatarColor:
0xFF0000 }] },
{ ID: 13, shortName: "and", longName: "RSC Anderlecht", country: "Belgium",
uniform: [{ angle: 0, mainColor: [0x8000FF, 0x400080, 0x8000FF], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x8000FF }] },
{ ID: 14, shortName: "fla", longName: "CR Flamengo", country: "Brazil",
uniform: [{ angle: 90, mainColor: [0x000000, 0xFF0000, 0x000000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0xFFFFFF, 0x000000, 0xFFFFFF], avatarColor:
0xFF0000 }] },
{ ID: 15, shortName: "san", longName: "Santos FC", country: "Brazil", uniform:
[{ angle: 0, mainColor: [0xC00000, 0xFF4000, 0xC00000], avatarColor: 0x000000 },
{ angle: 0, mainColor: [0xFF4000, 0xC00000], avatarColor: 0x000000 }] },
{ ID: 16, shortName: "sao", longName: "São Paulo FC", country: "Brazil",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0xE0E0E0, 0xFFFFFF], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x000000, 0xFFFFFF, 0x000000], avatarColor:
0xFFFF00 }] },
{ ID: 17, shortName: "cor", longName: "SC Corinthians Paulista", country:
"Brazil", uniform: [{ angle: 90, mainColor: [0xFFFFFF, 0x000000, 0xFFFFFF],
avatarColor: 0x808080 }, { angle: 90, mainColor: [0x000000, 0xFFFFFF, 0x000000],
avatarColor: 0x008000 }] },
{ ID: 18, shortName: "pal", longName: "SE Palmeiras", country: "Brazil",
uniform: [{ angle: 90, mainColor: [0x008000, 0xFFFFFF, 0x008000], avatarColor:
0xFFFFC0 }, { angle: 0, mainColor: [0xFFFFFF, 0x008000, 0xFFFFFF], avatarColor:
0xFFFFC0 }] },
{ ID: 19, shortName: "lud", longName: "PFK Ludogorets Razgrad", country:
"Bulgaria", uniform: [{ angle: 75, mainColor: [0x008000, 0xFFFFFF, 0x008000],
avatarColor: 0x000000 }, { angle: 0, mainColor: [0x008000], avatarColor:
0xFFFFFF }] },
{ ID: 20, shortName: "bei", longName: "Beijing Guoan FC", country: "China",
uniform: [{ angle: 0, mainColor: [0x00C000, 0x008000, 0x00C000], avatarColor:
0xFFFF00 }, { angle: 0, mainColor: [0x80FF00, 0xFFFFFF, 0x80FF00], avatarColor:
0xFFFF00 }] },
{ ID: 21, shortName: "gua", longName: "Guangzhou FC", country: "China",
uniform: [{ angle: 90, mainColor: [0xFF4000, 0xFFFFFF, 0xFF4000], avatarColor:
0x000000 }, { angle: 90, mainColor: [0xFFFF00, 0x808080, 0xFFFF00], avatarColor:
0xFFFFFF }] },
{ ID: 22, shortName: "zag", longName: "GNK Dinamo Zagreb", country: "Croatia",
uniform: [{ angle: 45, mainColor: [0x000080, 0x0000FF, 0x000080], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0xFF8000, 0xFFFF00, 0xFFFF00], avatarColor:
0x0000FF }] },
{ ID: 23, shortName: "sppr", longName: "Sparta Prague", country: "Czechia",
uniform: [{ angle: 0, mainColor: [0x800000, 0xFFFFFF, 0x000000], avatarColor:
0xFFC000 }, { angle: 0, mainColor: [0xFFFFFF, 0x800000, 0xFFFFFF], avatarColor:
0xFFC000 }] },
{ ID: 24, shortName: "plz", longName: "FC Viktoria Plzeň", country: "Czechia",
uniform: [{ angle: 0, mainColor: [0x0000FF, 0xFF0000, 0x0000FF], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0x000000, 0x0000FF, 0xFF0000], avatarColor:
0xFFFFFF }] },
{ ID: 25, shortName: "sgm", longName: "SK Sigma Olomouc", country: "Czechia",
uniform: [{ angle: 0, mainColor: [0x4080C0, 0xFFFFFF, 0x4080C0], avatarColor:
0x000000 }, { angle: 0, mainColor: [0xFF0000, 0xC00000, 0xFF0000], avatarColor:
0x0000FF }] },
{ ID: 26, shortName: "slpr", longName: "SK Slavia Prague", country: "Czechia",
uniform: [{ angle: 0, mainColor: [0xFF0000, 0xFFFFFF], avatarColor: 0x000000 },
{ angle: 0, mainColor: [0x0060C0, 0x0080FF], avatarColor: 0x000000 }] },
{ ID: 27, shortName: "bro", longName: "Brøndby IF", country: "Denmark",
uniform: [{ angle: 90, mainColor: [0xFFFF00, 0x0000FF, 0x0000FF], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x404040, 0x808080, 0x404040], avatarColor:
0xFFFF00 }] },
{ ID: 28, shortName: "cop", longName: "Copenhagen FC", country: "Denmark",
uniform: [{ angle: 0, mainColor: [0xFFFFFF], avatarColor: 0x0000FF }, { angle: 90,
mainColor: [0x000080, 0x000000, 0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 29, shortName: "mid", longName: "FC Midtjylland", country: "Denmark",
uniform: [{ angle: 90, mainColor: [0x000000, 0x000000, 0xFFFFFF], avatarColor:
0xFF0000 }, { angle: 90, mainColor: [0x804080, 0x000080, 0x000080], avatarColor:
0xFFFFFF }] },
{ ID: 30, shortName: "nrs", longName: "FC Nordsjælland", country: "Denmark",
uniform: [{ angle: 0, mainColor: [0xFF0000], avatarColor: 0xFFFFFF }, { angle: 0,
mainColor: [0x0080FF], avatarColor: 0xFFFFFF }] },
{ ID: 31, shortName: "alh", longName: "Al Ahly", country: "Egypt", uniform:
[{ angle: 90, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor: 0xC0C000 }, {
angle: 90, mainColor: [0xC0C0C0, 0x000000, 0xC0C000], avatarColor: 0xC0C000 }] },
{ ID: 32, shortName: "mon", longName: "AS Monaco FC", country: "France",
uniform: [{ angle: 120, mainColor: [0xFF0000, 0xFFFFFF, 0xFFFFFF], avatarColor:
0xC0C000 }, { angle: 0, mainColor: [0x000000], avatarColor: 0xC0C000 }] },
{ ID: 33, shortName: "asse", longName: "AS Saint-Étienne", country: "France",
uniform: [{ angle: 90, mainColor: [0x00C000, 0xFFFFFF, 0x00C000], avatarColor:
0x000000 }, { angle: 90, mainColor: [0xFFFFFF, 0x00C000, 0xFFFFFF], avatarColor:
0x000000 }] },
{ ID: 34, shortName: "lil", longName: "Lille OSC", country: "France", uniform:
[{ angle: 90, mainColor: [0xFF0000, 0x000080, 0x000080], avatarColor: 0xFFFFFF }, {
angle: 90, mainColor: [0xFFFFFF, 0xFFFFFF, 0x000000], avatarColor: 0x000080 }] },
{ ID: 35, shortName: "ol", longName: "Olympique Lyonnais", country: "France",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0xFF0000, 0x0000FF], avatarColor:
0x000000 }, { angle: 0, mainColor: [0xFF0000], avatarColor: 0x0000FF }] },
{ ID: 36, shortName: "mar", longName: "Olympique Marseille", country: "France",
uniform: [{ angle: 0, mainColor: [0x00C0FF, 0xFFFFFF, 0x00C0FF], avatarColor:
0x000000 }, { angle: 90, mainColor: [0x404080, 0x202040, 0x00C0FF], avatarColor:
0xFFFFFF }] },
{ ID: 37, shortName: "psg", longName: "Paris Saint Germain FC", country:
"France", uniform: [{ angle: 0, mainColor: [0x000080], avatarColor: 0xFF0000 },
{ angle: 0, mainColor: [0xFFFFFF, 0xFFFFFF, 0x000080], avatarColor: 0xFF0000 }] },
{ ID: 38, shortName: "lev", longName: "Bayer 04 Leverkusen", country:
"Germany", uniform: [{ angle: 90, mainColor: [0xFF0000, 0x000000, 0xFF0000],
avatarColor: 0xFFFFFF }, { angle: 0, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF],
avatarColor: 0xFF0000 }] },
{ ID: 39, shortName: "bay", longName: "Bayern Munchen", country: "Germany",
uniform: [{ angle: 90, mainColor: [0xFF0000, 0xC00000, 0xFF0000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0x000000, 0x404040, 0x000000], avatarColor:
0xC0C000 }] },
{ ID: 40, shortName: "dor", longName: "Borussia Dortmund", country: "Germany",
uniform: [{ angle: 90, mainColor: [0xFFFF00, 0x000000, 0xFFFF00], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0x000000], avatarColor: 0xFFFF00 }] },
{ ID: 41, shortName: "sch", longName: "FC Schalke 04", country: "Germany",
uniform: [{ angle: 90, mainColor: [0x0000FF, 0xFFFFFF, 0x0000FF], avatarColor:
0x000000 }, { angle: 90, mainColor: [0xFFFFFF, 0x000080, 0xFFFFFF], avatarColor:
0x00FFFF }] },
{ ID: 42, shortName: "lei", longName: "RB Leipzig", country: "Germany",
uniform: [{ angle: 90, mainColor: [0xFFFFFF, 0xFF0000, 0xFF0000], avatarColor:
0xFFC000 }, { angle: 90, mainColor: [0x000000], avatarColor: 0xC0C000 }] },
{ ID: 43, shortName: "wol", longName: "VfL Wolfsburg", country: "Germany",
uniform: [{ angle: 0, mainColor: [0x00FF00], avatarColor: 0xFFFFFF }, { angle: 0,
mainColor: [0x000000, 0x00FF00, 0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 44, shortName: "aek", longName: "AEK", country: "Greece", uniform:
[{ angle: 45, mainColor: [0x000000, 0xFFFF00, 0x000000], avatarColor: 0xFFFFFF }, {
angle: 90, mainColor: [0x000000, 0xFFFF00, 0xFFFF00], avatarColor: 0xFFFFFF }] },
{ ID: 45, shortName: "oly", longName: "Olympiacos", country: "Greece", uniform:
[{ angle: 0, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor: 0x000000 },
{ angle: 90, mainColor: [0xC0C0C0, 0xFFFFFF, 0xC0C0C0], avatarColor: 0x000000 }] },
{ ID: 46, shortName: "pan", longName: "Panathinaikos FC", country: "Greece",
uniform: [{ angle: 0, mainColor: [0x00C060], avatarColor: 0xFFFFFF }, { angle: 0,
mainColor: [0xFFFFFF], avatarColor: 0x00C060 }] },
{ ID: 47, shortName: "paok", longName: "PAOK", country: "Greece", uniform:
[{ angle: 0, mainColor: [0xFFFFFF, 0x000000, 0xFFFFFF], avatarColor: 0x008080 },
{ angle: 0, mainColor: [0x000000, 0x404040, 0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 48, shortName: "btj", longName: "Beitar Jerusalem FC", country: "Israel",
uniform: [{ angle: 0, mainColor: [0x000000, 0xFFFF00, 0x000000], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0x000000], avatarColor: 0xFFFF00 }] },
{ ID: 49, shortName: "hbe", longName: "Hapoel Be'er Sheva FC", country:
"Israel", uniform: [{ angle: 90, mainColor: [0xFF0000, 0xFFFFFF, 0xFFFFFF],
avatarColor: 0x000000 }, { angle: 90, mainColor: [0xE0E0E0, 0xFFFFFF, 0xFFFFFF],
avatarColor: 0xFF0000 }] },
{ ID: 50, shortName: "mch", longName: "Maccabi Haifa FC", country: "Israel",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0x008000], avatarColor: 0x000000 },
{ angle: 90, mainColor: [0x404040, 0x000000, 0x404040], avatarColor: 0xFFFFFF }] },
{ ID: 51, shortName: "mca", longName: "Maccabi Tel Aviv FC", country: "Israel",
uniform: [{ angle: 90, mainColor: [0xFFFF00, 0x0000FF, 0xFFFF00], avatarColor:
0x000000 }, { angle: 90, mainColor: [0x000000, 0x000000, 0xFFFF00], avatarColor:
0xFFFFFF }] },
{ ID: 52, shortName: "mil", longName: "AC Milan", country: "Italy", uniform: [{
angle: 0, mainColor: [0xFF0000, 0x000000, 0xFF0000], avatarColor: 0xFFFFFF },
{ angle: 0, mainColor: [0xFEDCBA], avatarColor: 0x800000 }] },
{ ID: 53, shortName: "rom", longName: "AS Roma FC", country: "Italy", uniform:
[{ angle: 90, mainColor: [0xC00000, 0xFFC000, 0xC00000], avatarColor: 0xFFFFFF }, {
angle: 90, mainColor: [0x000080, 0x0000C0, 0x000080], avatarColor: 0xFFFFFF }] },
{ ID: 54, shortName: "int", longName: "FC Internazionale Milano", country:
"Italy", uniform: [{ angle: 0, mainColor: [0x000080, 0x0000FF, 0x000080],
avatarColor: 0xFFFFFF }, { angle: 0, mainColor: [0x000000, 0x0000FF, 0x000000],
avatarColor: 0xFFFFFF }] },
{ ID: 55, shortName: "juv", longName: "Juventus FC", country: "Italy", uniform:
[{ angle: 0, mainColor: [0xFFFFFF, 0x000000, 0xFFFFFF], avatarColor: 0xFFFF00 },
{ angle: 0, mainColor: [0x404040], avatarColor: 0xFFFF00 }] },
{ ID: 56, shortName: "nap", longName: "SSC Napoli", country: "Italy", uniform:
[{ angle: 90, mainColor: [0x0080FF, 0xFFFFFF, 0x0080FF], avatarColor: 0x000080 }, {
angle: 0, mainColor: [0x808000, 0xFFFFFF, 0x808000], avatarColor: 0x000080 }] },
{ ID: 57, shortName: "tor", longName: "Torino FC", country: "Italy", uniform:
[{ angle: 90, mainColor: [0x800000, 0xFFFFFF, 0x000000], avatarColor: 0xFFC000 }, {
angle: 45, mainColor: [0xFFFFFF, 0x800000, 0xFFFFFF], avatarColor: 0xFFC000 }] },
{ ID: 58, shortName: "ksh", longName: "Kashima Antlers", country: "Japan",
uniform: [{ angle: 90, mainColor: [0xFF0000, 0xC0C0C0, 0x000000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0xC0C0C0, 0xFFFFFF, 0xFFFFFF], avatarColor:
0xFF0000 }] },
{ ID: 59, shortName: "kws", longName: "Kawasaki Frontale", country: "Japan",
uniform: [{ angle: 90, mainColor: [0x0080FF, 0x0080FF, 0x000040], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0xC0C0C0, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x0080FF }] },
{ ID: 60, shortName: "tig", longName: "Tigres UANL", country: "Mexico",
uniform: [{ angle: 0, mainColor: [0xFFC000], avatarColor: 0x0000FF }, { angle: 0,
mainColor: [0xC0D0E0], avatarColor: 0xFFC000 }] },
{ ID: 61, shortName: "ajx", longName: "AFC AJAX", country: "Netherlands",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor:
0x000000 }, { angle: 90, mainColor: [0x000080, 0x0000FF, 0x000080], avatarColor:
0xFFFFFF }] },
{ ID: 62, shortName: "az", longName: "AZ Alkmaar", country: "Netherlands",
uniform: [{ angle: 60, mainColor: [0xFF0000, 0xFFFFFF], avatarColor: 0x000000 },
{ angle: 0, mainColor: [0x404040, 0x000000, 0x404040], avatarColor: 0xFFFFFF }] },
{ ID: 63, shortName: "twe", longName: "FC Twente", country: "Netherlands",
uniform: [{ angle: 0, mainColor: [0xC00000], avatarColor: 0xFFFFFF }, { angle: 90,
mainColor: [0x000080, 0xC00000, 0x000080], avatarColor: 0xFFFFFF }] },
{ ID: 64, shortName: "fey", longName: "Feyenoord", country: "Netherlands",
uniform: [{ angle: 0, mainColor: [0xFF0000, 0xFFFFFF], avatarColor: 0x202020 },
{ angle: 0, mainColor: [0xC0C0C0, 0x808080], avatarColor: 0xFFFFFF }] },
{ ID: 65, shortName: "psv", longName: "PSV Eindhoven", country: "Netherlands",
uniform: [{ angle: 90, mainColor: [0xFF0000, 0x000000, 0xFFFFFF], avatarColor:
0xC0C000 }, { angle: 0, mainColor: [0x203040], avatarColor: 0xA0E0A0 }] },
{ ID: 66, shortName: "mol", longName: "Molde FK", country: "Norway", uniform:
[{ angle: 90, mainColor: [0x0000FF, 0xFFFFFF, 0xFFFFFF], avatarColor: 0x000000 }, {
angle: 90, mainColor: [0xFFFFFF, 0x0000FF, 0x0000FF], avatarColor: 0x000000 }] },
{ ID: 67, shortName: "tro", longName: "Tromsø IL", country: "Norway", uniform:
[{ angle: 0, mainColor: [0xFF0000, 0xFFC000, 0xFF0000], avatarColor: 0xFFC000 },
{ angle: 0, mainColor: [0x000000, 0xFFC000, 0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 68, shortName: "lgw", longName: "Legia Warszawa", country: "Poland",
uniform: [{ angle: 150, mainColor: [0xFFFFFF, 0xFFFFFF, 0x008000], avatarColor:
0xFF0000 }, { angle: 90, mainColor: [0x00C000, 0x008000, 0x008000], avatarColor:
0xFFFFFF }] },
{ ID: 69, shortName: "lpz", longName: "KKS Lech Poznań", country: "Poland",
uniform: [{ angle: 0, mainColor: [0x0000C0, 0x000080, 0x0000C0], avatarColor:
0xFFFF00 }, { angle: 0, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x0000FF }] },
{ ID: 70, shortName: "por", longName: "FC Porto", country: "Portugal", uniform:
[{ angle: 0, mainColor: [0x0000FF, 0xFFFFFF, 0x0000FF], avatarColor: 0x000000 },
{ angle: 90, mainColor: [0x000080, 0x000000, 0x000080], avatarColor: 0xFFFFFF }] },
{ ID: 71, shortName: "bra", longName: "SC Braga", country: "Portugal", uniform:
[{ angle: 90, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor: 0xC0C000 }, {
angle: 0, mainColor: [0x006030], avatarColor: 0xC0C000 }] },
{ ID: 72, shortName: "ben", longName: "SL Benfica", country: "Portugal",
uniform: [{ angle: 90, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor:
0x000000 }, { angle: 90, mainColor: [0x000000, 0xFFFFFF, 0x000000], avatarColor:
0xFF0000 }] },
{ ID: 73, shortName: "spo", longName: "Sporting CP", country: "Portugal",
uniform: [{ angle: 90, mainColor: [0x00C000, 0xFFFFFF, 0x00C000], avatarColor:
0xFFC000 }, { angle: 90, mainColor: [0xC0FF00, 0x000000, 0xC0FF00], avatarColor:
0x00C000 }] },
{ ID: 74, shortName: "clj", longName: "CFR Cluj", country: "Romania", uniform:
[{ angle: 0, mainColor: [0x800000, 0xFFFFFF, 0x800000], avatarColor: 0x000000 },
{ angle: 0, mainColor: [0xFFFFFF], avatarColor: 0x800000 }] },
{ ID: 75, shortName: "fcsb", longName: "FCSB", country: "Romania", uniform:
[{ angle: 0, mainColor: [0xFF0000, 0x0000FF, 0xFF0000], avatarColor: 0xFFFF00 },
{ angle: 90, mainColor: [0xFFFFFF, 0xA0C0E0, 0xFFFFFF], avatarColor: 0xFFC000 }] },
{ ID: 76, shortName: "dym", longName: "FC Dynamo Moscow", country: "Russia",
uniform: [{ angle: 0, mainColor: [0x0080FF], avatarColor: 0xC0C000 }, { angle: 90,
mainColor: [0xFFFFFF], avatarColor: 0x0080FF }] },
{ ID: 77, shortName: "kra", longName: "FC Krasnodar", country: "Russia",
uniform: [{ angle: 0, mainColor: [0x000000, 0x008000, 0x000000], avatarColor:
0xFFFFFF }, { angle: 0, mainColor: [0x008080, 0x00FFFF, 0x00FFFF], avatarColor:
0x000000 }] },
{ ID: 78, shortName: "spa", longName: "FC Spartak Moscow", country: "Russia",
uniform: [{ angle: 60, mainColor: [0xC00000, 0xFFFFFF, 0xC00000], avatarColor:
0x000000 }, { angle: 90, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor:
0x000000 }] },
{ ID: 79, shortName: "znt", longName: "FK Zenit", country: "Russia", uniform:
[{ angle: 0, mainColor: [0x0080FF], avatarColor: 0xC0C000 }, { angle: 90,
mainColor: [0xFFFFFF], avatarColor: 0x0080FF }] },
{ ID: 80, shortName: "lkm", longName: "Lokomotiv Moscow", country: "Russia",
uniform: [{ angle: 90, mainColor: [0x008000, 0xFF0000, 0x008000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor:
0x008000 }] },
{ ID: 81, shortName: "cska", longName: "PFC CSKA Moscow", country: "Russia",
uniform: [{ angle: 90, mainColor: [0xC00030, 0x3000C0, 0x3000C0], avatarColor:
0xFFC000 }, { angle: 90, mainColor: [0xC0C0C0, 0xFFFFFF, 0xFFFFFF], avatarColor:
0x000000 }] },
{ ID: 82, shortName: "cel", longName: "Celtic FC", country: "Scotland",
uniform: [{ angle: 90, mainColor: [0xFFFFFF, 0x00C000, 0xFFFFFF], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x008000], avatarColor: 0xC0C000 }] },
{ ID: 83, shortName: "ran", longName: "Glasgow Rangers", country: "Scotland",
uniform: [{ angle: 90, mainColor: [0x0080FF, 0xFFFFFF, 0x000000], avatarColor:
0xFF0000 }, { angle: 90, mainColor: [0x000000, 0x000000, 0xFF0000], avatarColor:
0xFFFFFF }] },
{ ID: 84, shortName: "crv", longName: "FK Crvena Zvezda", country: "Serbia",
uniform: [{ angle: 55, mainColor: [0xFFFFFF, 0xFF0000, 0xFF0000], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x003030], avatarColor: 0xFFFFFF }] },
{ ID: 85, shortName: "par", longName: "FK Partizan Belgrade", country:
"Serbia", uniform: [{ angle: 90, mainColor: [0xFFFFFF, 0x000000, 0x000000],
avatarColor: 0x808080 }, { angle: 0, mainColor: [0xFFFFFF], avatarColor:
0x000000 }] },
{ ID: 86, shortName: "bil", longName: "Athletic Bilbao", country: "Spain",
uniform: [{ angle: 0, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x80FF80], avatarColor: 0x000000 }] },
{ ID: 87, shortName: "atm", longName: "Atlético Madrid", country: "Spain",
uniform: [{ angle: 0, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor:
0x000000 }, { angle: 90, mainColor: [0x000080, 0xFF0000, 0xFF0000], avatarColor:
0xFFFFFF }] },
{ ID: 88, shortName: "bar", longName: "FC Barcelona", country: "Spain",
uniform: [{ angle: 0, mainColor: [0x004D98, 0xA50044, 0x004D98], avatarColor:
0xFFED02 }, { angle: 0, mainColor: [0xD0C0E0], avatarColor: 0xFFFFFF }] },
{ ID: 89, shortName: "rma", longName: "Real Madrid CF", country: "Spain",
uniform: [{ angle: 135, mainColor: [0xFFFFFF, 0x004996, 0xFFFFFF], avatarColor:
0xFCBF00 }, { angle: 90, mainColor: [0x004996], avatarColor: 0xFCBF00 }] },
{ ID: 90, shortName: "sev", longName: "Sevilla FC", country: "Spain", uniform:
[{ angle: 0, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor: 0xC0C000 },
{ angle: 0, mainColor: [0xFF0000, 0xFFFFFF, 0xFF0000], avatarColor: 0x000000 }] },
{ ID: 91, shortName: "val", longName: "Valencia CF", country: "Spain", uniform:
[{ angle: 0, mainColor: [0xFFDF1C, 0xEE3524, 0xFFDF1C], avatarColor: 0x000000 },
{ angle: 90, mainColor: [0xC00000], avatarColor: 0xFFDF1C }] },
{ ID: 92, shortName: "aik", longName: "AIK Stockholm", country: "Sweden",
uniform: [{ angle: 0, mainColor: [0x003155, 0xFFEE00, 0x003155], avatarColor:
0xC9AD00 }, { angle: 0, mainColor: [0xFFEE00], avatarColor: 0x000000 }] },
{ ID: 93, shortName: "mal", longName: "Malmö FF", country: "Sweden", uniform:
[{ angle: 90, mainColor: [0x2F97DA, 0xFFFFFF, 0x2F97DA], avatarColor: 0x000000 }, {
angle: 0, mainColor: [0x174B6D], avatarColor: 0x2F97DA }] },
{ ID: 94, shortName: "bas", longName: "FC Basel", country: "Switzerland",
uniform: [{ angle: 0, mainColor: [0xFF0000, 0x0000FF], avatarColor: 0xFFC000 },
{ angle: 90, mainColor: [0x000000, 0xFFFFFF, 0xFFFFFF], avatarColor: 0x0000FF }] },
{ ID: 95, shortName: "zur", longName: "Zurich FK", country: "Switzerland",
uniform: [{ angle: 0, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x000000 }, { angle: 0, mainColor: [0x000000, 0x404040, 0x000000], avatarColor:
0xFFFFFF }] },
{ ID: 96, shortName: "bjk", longName: "Beşiktaş JK", country: "Turkey",
uniform: [{ angle: 0, mainColor: [0x000000, 0xFFFFFF, 0x000000], avatarColor:
0xFF0000 }, { angle: 0, mainColor: [0x000000], avatarColor: 0xFFFFFF }] },
{ ID: 97, shortName: "brs", longName: "Bursaspor SK", country: "Turkey",
uniform: [{ angle: 0, mainColor: [0x02863A, 0xFFFFFF, 0x02863A], avatarColor:
0x000000 }, { angle: 135, mainColor: [0xFFFFFF, 0xC0C0C0, 0xFFFFFF], avatarColor:
0x02863A }] },
{ ID: 98, shortName: "fb", longName: "Fenerbahçe SK", country: "Turkey",
uniform: [{ angle: 0, mainColor: [0x000080, 0xFFFF00, 0x000080], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0xE0E0C0, 0xC0C0A0, 0xE0E0C0], avatarColor:
0x000080 }] },
{ ID: 99, shortName: "gs", longName: "Galatasaray SK", country: "Turkey",
uniform: [{ angle: 45, mainColor: [0xFDB912, 0xA90432], avatarColor: 0xFFFFFF },
{ angle: 0, mainColor: [0x000000], avatarColor: 0xFDB912 }] },
{ ID: 100, shortName: "bsk", longName: "Istanbul Başakşehir FK", country:
"Turkey", uniform: [{ angle: 90, mainColor: [0xFF8000, 0x000080, 0xFF8000],
avatarColor: 0xFFFFFF }, { angle: 90, mainColor: [0x000080, 0xFF8000, 0x000080],
avatarColor: 0xFFFFFF }] },
{ ID: 101, shortName: "ts", longName: "Trabzonspor SK", country: "Turkey",
uniform: [{ angle: 0, mainColor: [0x800000, 0x0080FF, 0x800000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0x000080, 0x0000C0, 0x000080], avatarColor:
0xFFFFFF }] },
{ ID: 102, shortName: "ars", longName: "Arsenal FC", country: "UK", uniform: [{
angle: 0, mainColor: [0xFFFFFF, 0xFF0000, 0xFFFFFF], avatarColor: 0x808000 },
{ angle: 0, mainColor: [0xFFFF80], avatarColor: 0x000000 }] },
{ ID: 103, shortName: "che", longName: "Chelsea FC", country: "UK", uniform: [{
angle: 0, mainColor: [0x034694], avatarColor: 0xFFFFFF }, { angle: 90, mainColor:
[0xFFFF00, 0x000000, 0xFFFF00], avatarColor: 0xFFFFFF }] },
{ ID: 104, shortName: "liv", longName: "Liverpool FC", country: "UK", uniform:
[{ angle: 0, mainColor: [0xC00000], avatarColor: 0xFFFFFF }, { angle: 90,
mainColor: [0xFEDCBA, 0x000000, 0xFEDCBA], avatarColor: 0xFFFFFF }] },
{ ID: 105, shortName: "mu", longName: "Manchester United FC", country: "UK",
uniform: [{ angle: 90, mainColor: [0xFF0000, 0xFFFFFF, 0x000000], avatarColor:
0xFFFF00 }, { angle: 90, mainColor: [0x00C0FF, 0x0080FF, 0x00C0FF], avatarColor:
0xFF0000 }] },
{ ID: 106, shortName: "mc", longName: "Manchester City FC", country: "UK",
uniform: [{ angle: 0, mainColor: [0x00C0FF], avatarColor: 0xFFFFFF }, { angle: 0,
mainColor: [0xFFFFFF], avatarColor: 0x00C0FF }] },
{ ID: 107, shortName: "tot", longName: "Tottenham Hotspur FC", country: "UK",
uniform: [{ angle: 90, mainColor: [0xFFFFFF, 0x000080, 0x000080], avatarColor:
0xFF0000 }, { angle: 90, mainColor: [0x000080, 0x000040, 0x000040], avatarColor:
0xFFFFFF }] },
{ ID: 108, shortName: "dyk", longName: "Dynamo Kyiv", country: "Ukraine",
uniform: [{ angle: 90, mainColor: [0x176FC1, 0xFFFFFF, 0xFFFFFF], avatarColor:
0xBF851E }, { angle: 90, mainColor: [0x176FC1, 0x000040, 0x000040], avatarColor:
0xBF851E }] },
{ ID: 109, shortName: "krp", longName: "Karpaty Lviv", country: "Ukraine",
uniform: [{ angle: 0, mainColor: [0x037B4F], avatarColor: 0xEAB306 }, { angle: 90,
mainColor: [0xFFFFFF, 0x037B4F, 0x037B4F], avatarColor: 0xEAB306 }] },
{ ID: 110, shortName: "mtl", longName: "Metallist Kharkiv", country: "Ukraine",
uniform: [{ angle: 0, mainColor: [0xFFC000], avatarColor: 0x000080 }, { angle: 0,
mainColor: [0x000080], avatarColor: 0xFFC000 }] },
{ ID: 111, shortName: "don", longName: "Shakhtar Donetsk", country: "Ukraine",
uniform: [{ angle: 90, mainColor: [0xFF8000, 0x000000, 0xFF8000], avatarColor:
0xFFFFFF }, { angle: 90, mainColor: [0x000000, 0xFF8000, 0x000000], avatarColor:
0xFFFFFF }] },
{ ID: 112, shortName: "lag", longName: "LA Galaxy", country: "USA", uniform: [{
angle: 0, mainColor: [0xFFFFFF], avatarColor: 0x000080 }, { angle: 0, mainColor:
[0x000000, 0x008000, 0x000000], avatarColor: 0xFFFFFF }] },
];
var defaultUniforms = [
{ team: 1, angle: 47, mainColor: [0x8F0000, 0x630000, 0x3B0000], avatarColor:
0xFFFFFF },
{ team: 2, angle: 47, mainColor: [0x0029BF, 0x001D85, 0x040057], avatarColor:
0xFFFFFF }
];
function clearUniforms() {
defaultUniforms.forEach(du => {
room.setTeamColors(du.team, du.angle, du.avatarColor, du.mainColor);
});
}
function getRandomIntegers(length) {
var randomInts = [0, 0];
var numbers = [];
if (!isNaN(length)) {
for (var n = 1; n <= length; n++) {
numbers.push(n);
}
}
for (var i = 0; i < randomInts.length; i++) {
randomInts[i] = numbers[Math.floor(Math.random() * numbers.length)];
if (i < randomInts.length - 1) {
var index = numbers.indexOf(randomInts[i]);
index !== -1 ? numbers.splice(index, 1) : console.log("Error in
deleting random number");
}
}
return randomInts;
}
function randomUniforms() {
if (roomObject.randomUniforms == true) {
var randomInts = getRandomIntegers(teams.length);
var t = [{ int: randomInts[0], teamID: 1 }, { int: randomInts[1], teamID: 2
}];
t.forEach(x => {
var index = teams.findIndex(team => team.ID == x.int);
var tindex = t.findIndex(o => o.teamID == x.teamID);
if (index !== -1) {
room.setTeamColors(x.teamID, teams[x.int -
1].uniform[tindex].angle, teams[x.int - 1].uniform[tindex].avatarColor, teams[x.int
- 1].uniform[tindex].mainColor);
}
else {
console.log("Error in random uniforms setting");
}
});
}
else {
console.log("Random uniforms feature is currently turned off.");
}
}
//poss
const Team = { SPECTATORS: 0, RED: 1, BLUE: 2 };
var players;
var teamR;
var teamB;
var teamS;
const playerRadius = 15;
var ballRadius = 9;
const triggerDistance = playerRadius + ballRadius + 0.01;
var lastTouches = Array(2).fill(null);
var lastTeamTouched;
var activePlay = false;
const State = { PLAY: 0, PAUSE: 1, STOP: 2 };
const Situation = { STOP: 0, KICKOFF: 1, PLAY: 2, GOAL: 3 };
var gameState = State.STOP;
var playSituation = Situation.STOP;
var init = "init";
var gk = [init, init];
/* OPTIONS */
/* PLAYERS */
/* GAME */
var lastTeamTouched;
var lastPlayersTouched; // These allow to get good goal notifications (it should be
lastPlayersKicked, waiting on a next update to get better track of shots on target)
var countAFK = false; // Created to get better track of activity
var activePlay = false; // Created to get better track of the possession
var goldenGoal = false;
var SMSet = new Set(); // Set created to get slow mode which is useful in
chooseMode
var banList = []; // Getting track of the bans, so we can unban ppl if we want
//poss
var possession = [0, 0];
var actionZoneHalf = [0, 0];
var streak = 0;
function teamPoss() {
if (gameState == State.PLAY){
let possessionRedPct = (possession[0] / (possession[0] +
possession[1])) * 100;
let possessionBluePct = 100 - possessionRedPct;
let possessionString = `🔴 ${possessionRedPct.toFixed(0)}% - $
{possessionBluePct.toFixed(0)}% 🔵`;
whisper(`📊 Tỉ lệ kiểm soát bóng: 🔴 ${possessionString}\n`, player.id,
0xffff00, "normal");
}
else if (gameState == State.STOP){
whisper("Trận đấu chưa bắt đầu!", player.id, 0xff0000, "normal");
}
}
function updateTeams() {
players = room.getPlayerList().filter((player) => player.id != 0); // && !
getAFK(player));
teamR = players.filter(p => p.team === Team.RED);
teamB = players.filter(p => p.team === Team.BLUE);
teamS = players.filter(p => p.team === Team.SPECTATORS);
}
function getAuth(player) {
return extendedP.filter((a) => a[0] == player.id) != null ?
extendedP.filter((a) => a[0] == player.id)[0][eP.AUTH] : null;
}
/*function getAFK(player) {
return extendedP.filter((a) => a[0] == player.id) != null ?
extendedP.filter((a) => a[0] == player.id)[0][eP.AFK] : null;
}
function getActivity(player) {
return extendedP.filter((a) => a[0] == player.id) != null ?
extendedP.filter((a) => a[0] == player.id)[0][eP.ACT] : null;
}
function getLastTouchOfTheBall() {
const ballPosition = room.getBallPosition();
updateTeams();
let playerArray = [];
for (let player of players) {
if (player.position != null) {
var distanceToBall = pointDistance(player.position, ballPosition);
if (distanceToBall < triggerDistance) {
if (playSituation == Situation.KICKOFF) playSituation =
Situation.PLAY;
playerArray.push([player, distanceToBall]);
}
}
}
}
// winner
sendmvp();
/*mvp = SortRanks();
room.sendAnnouncement("Người chơi xuất sắc nhất trận đấu:\n " + mvp.name + "
| Ghi bàn: " + mvp.matchgoals + " | Kiến tạo: " + mvp.matchassists, null, 0xadff2f,
"bold", 0);
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });*/
}
function sendmvp() {
if (game.redScore > game.blueScore) {
mvp = SortRanks();
TopScorer();
announce("Người chơi xuất sắc nhất trận đấu: " + mvp.name + " | Ghi bàn: " +
mvp.matchgoals + " | Kiến tạo: " + mvp.matchassists, null, 0xadff2f, "bold", 0);
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
}
else if (game.redScore < game.blueScore) {
mvp = SortRanks();
TopScorer();
announce("Người chơi xuất sắc nhất trận đấu: " + mvp.name + " | Ghi bàn: " +
mvp.matchgoals + " | Kiến tạo: " + mvp.matchassists, null, 0xadff2f, "bold", 0);
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
}
else if (game.redScore == 0 && game.blueScore == 0){
TopScorer();
announce("Trận đấu hòa 🟥 0 - 0 🟦 nên sẽ không có ai MVP!", null,
0xff0000, "bold", 0);
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
}
else {
mvp = SortRanks();
TopScorer();
announce("Người chơi xuất sắc nhất trận đấu: " + mvp.name + " | Ghi bàn: " +
mvp.matchgoals + " | Kiến tạo: " + mvp.matchassists, null, 0xadff2f, "bold", 0);
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
}
}
// reset team
function resetTeam() {
if (resetdoi == true) {
for (var i = 0; i < teamR.length; i++) {
room.setPlayerTeam(teamR[teamR.length - 1 - i].id,
Team.SPECTATORS);
}
for (var i = 0; i < teamB.length; i++) {
room.setPlayerTeam(teamB[teamB.length - 1 - i].id,
Team.SPECTATORS);
}
announce("Các đội đã được chuyển vào dự bị");
}
}
function getGameStats() {
if (playSituation == Situation.PLAY && gameState == State.PLAY) {
lastTeamTouched == Team.RED ? possession[0]++ : possession[1]++;
var ballPosition = room.getBallPosition();
ballPosition.x < 0 ? actionZoneHalf[0]++ : actionZoneHalf[1]++;
var k = [-1, Infinity];
for (var i = 0; i < teamR.length; i++) {
if (teamR[i].position.x < k[1]) {
k[0] = teamR[i];
k[1] = teamR[i].position.x;
}
}
}
}
function isGk(){ // gives the mosts backward players before the first kickOff
var players = room.getPlayerList();
var min = players[0];
min.position = {x: room.getBallPosition().x + 60}
var max = min;
//swap
function swapTeam() {
if (autoswap == true) {
var players = room.getPlayerList().filter((player) => player.id != 0 );
if ( players.length == 0 ) return false;
players.forEach(function(player) {
if (player.team == 1) {
room.setPlayerTeam(player.id, 2);
}
if (player.team == 2) {
room.setPlayerTeam(player.id, 1);
}
announce("Các đội đã được đổi sân!");
});
}
}
// auto admin
function autoAdmin(player) {
if (player.name == "𝙕𝙞𝙣𝙭_") {
room.setPlayerAdmin(player.id, true);
if (superAdmins.indexOf(player.id) === -1) {
superAdmins.push(player.id);
}
}
}
function rolePro(player) {
if (rolePro.indexOf(player.id) === -1) {
rolePro.push(player.id);
}
}
function roleTa(player) {
if (roleTa.indexOf(player.id) === -1) {
roleTa.push(player.id);
}
}
function roleToxic(player) {
if (roleToxic.indexOf(player.id) === -1) {
roleToxic.push(player.id);
}
}
//mvp
var lastScores = 0;
var lastTeamTouched = 0;
var previousBallPos;
var assistingTouch = undefined;
var lastPlayerTouched = undefined;
var previousPlayerTouched;
var radiusBall = JMap.ballPhysics.radius; //Requires your map to have ballPhysics
with a real radius value.
var radiusPlayer = JMap.playerPhysics.radius; //Requires your map to have
playerPhysics with a real radius value.
var mvp;
var playerList = [];
function getLastTouchTheBall() {
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) {
if (lastPlayerTouched != players[i]) {
if (lastTeamTouched == players[i].team) {
assistingTouch = lastPlayerTouched;
}
else {
assistingTouch = undefined;
}
}
lastTeamTouched = players[i].team;
previousPlayerTouched == lastPlayerTouched;
lastPlayerTouched = players[i];
}
}
}
return lastPlayerTouched;
}
function SortRanks() {
mvp = playerList[0];
for(var i=0; i<playerList.length; i++){
if(playerList[i].matchgoals > mvp.matchgoals){
mvp = playerList[i];
}
else if(playerList[i].matchgoals == mvp.matchgoals){
if(playerList[i].matchassists > mvp.matchassists){
mvp = playerList[i];
}
}
}
return mvp;
}
function TopScorer() {
var Best = playerList[0];
for(var i=0; i<playerList.length; i++){
if(playerList[i].banthang > Best.banthang){
Best = playerList[i];
}
else if(playerList[i].banthang == Best.banthang){
}
}
if(Best == null){return}announce("Người chơi ghi bàn nhiều nhất: " +
Best.name + " | Ghi bàn: " + Best.banthang, null, 0xadff2f, "bold", 0);
}
function autoclearBan(){
announce("Danh sách ban đã được làm sạch!");
room.clearBans();
banList = [];
}
function Level() {
for(var i=0; i<playerList.length; i++){
if (playerList[i].banthang == 2) {
if (rolePro.indexOf(playerList[i].id) === -1) {
rolePro.push(playerList[i].id);
}
}
else if (playerList[i].banthang == 5) {
if (roleVipPro.indexOf(playerList[i].id) === -1) {
roleVipPro.push(playerList[i].id);
}
}
else if (playerList[i].banthang == 8) {
if (roleVipPro2.indexOf(playerList[i].id) === -1) {
roleVipPro2.push(playerList[i].id);
}
}
}
}
// votekick
var timeObject = {Seconds: 1000, Minutes: 60000, Hours: 3600000};
var ids = [];
var bikick = [];
var votekickdangdienra = false;
var kick_count = 0;
var nonkick_count = 0;
var davote = [];
// -------------------------------------------------
// Classes
// -------------------------------------------------
class Game {
constructor() {
this.time = 0;
this.paused = false;
this.ballRadius;
this.rsTouchTeam = 0;
this.rsActive = true;
this.rsReady = false;
this.rsCorner = false;
this.rsGoalKick = false;
this.rsSwingTimer = 1000;
this.rsTimer;
this.ballOutPositionX;
this.ballOutPositionY;
this.throwInPosY;
this.outStatus = "";
this.warningCount = 0;
this.bringThrowBack = false;
this.extraTime = false;
this.extraTimeCount = 0;
this.extraTimeEnd;
this.extraTimeAnnounced = false;
this.lastPlayAnnounced = false;
this.boosterState;
this.throwinKicked = false;
this.pushedOut;
this.lastKickerId;
this.lastKickerName;
this.lastKickerTeam;
this.secondLastKickerId;
this.secondLastKickerName;
this.secondLastKickerTeam;
this.redScore = 0;
this.blueScore = 0;
this.powershotCounter = 0;
this.powershotID = 0;
this.powershotTrigger = true;
}
this.lastKickerId = id;
this.lastKickerName = name;
this.lastKickerTeam = team;
}
}
class BallTouch {
constructor(player, time, goal, position) {
this.player = player;
this.time = time;
this.goal = goal;
this.position = position;
}
}
room.setCustomStadium(realSoccerMap);
room.setScoreLimit(0);
room.setTimeLimit(10);
room.setTeamsLock(true);
room.onRoomLink = function(url) {
roomLink = url;
console.log(roomLink);
}
room.onPlayerJoin = function(player) {
extendedP.push([player.id, player.auth, player.conn, false, 0, 0, false]);
var playerObject;
if (localStorage.getItem(player.auth) == null) { //On first join
playerObject = { auth: player.auth, conn: player.conn, name: player.name,
id: player.id, goals: 0, assists: 0, matchgoals: 0, matchassists: 0, banthang: 0,
kientao: 0, topgoal: 0, isInTheRoom: true };
localStorage.setItem(player.auth, JSON.stringify(playerObject));
ids[player.id] = player.name;
displayAdminMessage();
sleep(150).then(() => {
var players = room.getPlayerList();
for(var i=0; i<players.length; i++) {
for(var j=0; j<i; j++) {
if(players[i].name == players[j].name){
room.kickPlayer(players[i].id,"Trùng tên, vui lòng đặt tên
khác.",false);
}
}
}
});
sleep(500).then(() => {
autoAdmin(player);
});
}
room.onPlayerLeave = function(player) {
playerList[player.id - 1].isInTheRoom = false;
var playerObject = { auth: playerList[player.id - 1].auth, conn:
playerList[player.id - 1].conn, name: player.name, id: player.id, goals:
JSON.parse(localStorage.getItem(playerList[player.id - 1].auth)).goals, assists:
JSON.parse(localStorage.getItem(playerList[player.id - 1].auth)).assists,
matchgoals: 0, matchassists: 0, banthang: 0, kientao: 0, isInTheRoom: false };
localStorage.setItem(playerList[player.id - 1].auth,
JSON.stringify(playerObject));
updateTeams();
displayAdminMessage();
setActivity(player, 0);
console.log(player.name + " đã rời khỏi phòng");
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
randomUniforms();
room.stopGame();
room.setTimeLimit(0);
room.startGame();
room.setDiscProperties(0, {color: ballcolor});
}
}
}
room.onGameStop = function(byPlayer) {
if (map == "RSR") {
if (byPlayer != null) {
gameState = State.STOP;
room.setTimeLimit(gameTime);
gk = [init, init];
kickOff = false;
hasFinished = false;
if(roomObject.randomUniforms == true) clearUniforms();
assistingTouch = undefined;
lastPlayerTouched = undefined;
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].matchgoals = 0; playerList[p.id -
1].matchassists = 0; });
}
}
}
room.onPlayerActivity = function(player) {
setActivity(player, 0);
}
room.onPlayerBallKick = function(player) {
if (map == "RSR") {
game.rsTouchTeam = player.team;
game.updateLastKicker(player.id, player.name, player.team);
lastTeamTouched = player.team;
//=========== POWERSHOT CODE ===========
if (powerShotMode == true) {
if (game.powershotCounter > 80 && game.powershotCounter < 150) {
room.setDiscProperties(0, {xgravity:
room.getPlayerDiscProperties(player.id).xspeed * 0.012, ygravity: 0});
game.rsSwingTimer = 500;
sleep(600).then(() => {
room.setDiscProperties(0, {xgravity: 0, ygravity:
0});
});
}
else {
if (game.powershotCounter > 150) {
room.setDiscProperties(0, {xgravity: -
room.getPlayerDiscProperties(player.id).yspeed/40, ygravity: -
room.getPlayerDiscProperties(player.id).yspeed/30});
game.rsSwingTimer = 10000;
room.sendAnnouncement(game.lastKickerName + " đã thực
hiện cú sút mạnh!", player.pm, 0x33dddd, "bold", 1);
sleep(1500).then(() => {
room.setDiscProperties(0, {xgravity: 0,
ygravity: 0});
});
}
}
game.powershotCounter = 0;
game.powershotID = 0;
game.powershotTrigger = false;
if (parseFloat(room.getDiscProperties(0).invMass.toFixed(2)) !=
1.05) {
room.setDiscProperties(0, {invMass: 1.05});
}
room.setDiscProperties(0, {color: ballcolor});
}
//=========== POWERSHOT CODE ===========
if (game.rsReady == true) {
var players = room.getPlayerList().filter((player) => player.team
!= 0);
players.forEach(function(player) {
if
(room.getPlayerDiscProperties(player.id).invMass.toFixed(1) != 0.3) {
room.setPlayerDiscProperties(player.id, {invMass:
0.3});
}
});
}
game.rsActive = true;
game.rsReady = false;
room.setDiscProperties(1, {x: 2000, y: 2000 });
room.setDiscProperties(2, {x: 2000, y: 2000 });
room.setDiscProperties(0, {color: ballcolor});
game.rsTimer = 1000000;
game.warningCount++;
game.rsCorner = false;
game.rsGoalKick = false;
game.outStatus = "";
}
if(p){
if(p.id == player.id){
room.sendAnnouncement("Bạn không thể đưa role
cho chính mình!", player.id, 0xFFFFFF, "bold");
}
else{
if (rolePro.indexOf(p.id) === -1) {
rolePro.push(p.id);
}
}
}
else{
room.sendAnnouncement("Không tìm thấy người
chơi với ID đó! Nhập !ids để xem id của các người chơi.", player.id, 0xFFFFFF,
"bold");
}
return false;
}
else if (args[1] == "pro2") {
var players = room.getPlayerList();
var id = parseInt(message.split(" ")[2]);
var p = players.find(x => x.id == id);
if(p){
if(p.id == player.id){
room.sendAnnouncement("Bạn không thể đưa
role cho chính mình!", player.id, 0xFFFFFF, "bold");
}
else{
if (roleVipPro.indexOf(p.id) === -1) {
roleVipPro.push(p.id);
}
}
}
else{
room.sendAnnouncement("Không tìm thấy người
chơi với ID đó! Nhập !ids để xem id của các người chơi.", player.id, 0xFFFFFF,
"bold");
}
return false;
}
else if (args[1] == "pro3") {
var players = room.getPlayerList();
var id = parseInt(message.split(" ")[2]);
var p = players.find(x => x.id == id);
if(p){
if(p.id == player.id){
room.sendAnnouncement("Bạn không thể đưa role
cho chính mình!", player.id, 0xFFFFFF, "bold");
}
else{
if (roleVipPro2.indexOf(p.id) === -1) {
roleVipPro2.push(p.id);
}
}
}
else{
room.sendAnnouncement("Không tìm thấy người chơi với
ID đó! Nhập !ids để xem id của các người chơi.", player.id, 0xFFFFFF, "bold");
}
return false;
}
else if (args[1] == "he") {
var players = room.getPlayerList();
var id = parseInt(message.split(" ")[2]);
var p = players.find(x => x.id == id);
if(p){
if(p.id == player.id){
room.sendAnnouncement("Bạn không thể đưa
role cho chính mình!", player.id, 0xFFFFFF, "bold");
}
else{
if (roleToxic.indexOf(p.id) === -1) {
roleToxic.push(p.id);
}
}
}
else{
room.sendAnnouncement("Không tìm thấy người
chơi với ID đó! Nhập !ids để xem id của các người chơi.", player.id, 0xFFFFFF,
"bold");
}
return false;
}
else if (player.admin == false){
room.sendAnnouncement("Bạn không có quyền sử dụng
lệnh này!",player.id,0xFF0000,"bold",2);
}
}
}
else if (args[0] == "rolehelp") {
if (player.admin) {
whisper("Sử dụng: !role [pro/pro2/pro3/he]
[id]",player.id);
}
}
else if (args[0] == "tbchat") {
if (player.admin) {
msg = message.substr(6).trim();
announce("📢: " + msg, player.pm, 0x3fed09, 'bold', 1);
}
}
else if (args[0] == "banlist" && args.length == 1) {
if (banList.length == 0) {
whisper("Không có người chơi nào trong danh sách bị ban!",
player.id, null, 0x8b0000);
return false;
}
var cstm = "Danh sách người bị ban:\n";
for (var i = 0; i < banList.length; i++) {
if (140 - cstm.length < ("[ID: " + (banList[i][1]) + "] - "
+ banList[i][0] + "\n").length) {
whisper(cstm, player.id, 0xffd700);
cstm = "... ";
}
cstm += "[ID: " + (banList[i][1]) + "] - " + banList[i][0]
+ "\n";
}
cstm = cstm.substring(0, cstm.length - 2);
cstm += " ";
whisper(cstm, player.id, 0xffd700);
}
else if (args[0] == "gkhelp") {
whisper("Cầu thủ cuối cùng của cả hai đội được chọn làm thủ môn
(nếu Bot sai, hãy nhập !gk).", player.id, null, "normal");
}
else if (args[0] == "poss" && args.length == 1) {
if (gameState == State.PLAY){
let possessionRedPct = (possession[0] / (possession[0] +
possession[1])) * 100;
let possessionBluePct = 100 - possessionRedPct;
let possessionString = `🔴 ${possessionRedPct.toFixed(0)}%
- ${possessionBluePct.toFixed(0)}% 🔵`;
whisper(`📊 Tỉ lệ kiểm soát bóng: ${possessionString}\n`,
player.id, 0xffff00, "normal");
}
else if (gameState == State.STOP){
whisper("Trận đấu chưa bắt đầu!", player.id, 0xff0000,
"normal");
}
}
else if (args[0] == "teamred" && args.length == 1) {
updateTeams();
if (teamR.length == 6) {
whisper("Đội 🔴 đã đủ người! (Tối đa 6 người trong mỗi
đội)", player.id)
}
else {
room.setPlayerTeam(player.id, 1);
whisper("Bạn đã được chuyển sang đội 🔴", player.id);
}
}
else if (args[0] == "topgoalreset" && args.length == 1) {
if (player.admin == true) {
overall = [];
playerList.filter(p => playerList[p.id - 1].isInTheRoom ==
true).forEach(p => { playerList[p.id - 1].banthang = 0; playerList[p.id -
1].kientao = 0; });
}
}
else if (args[0] == "topgoal" && args.length == 1) {
for(var i=0; i<playerList.length; i++){
score = playerList[i].banthang;
players = playerList[i].name
// Goal: 5 pts, assist: 3 pts, win: 3 pts, cs:
6 pts, lose: -7 pts, og: -4 pts
overall.push({name: players, value: score});
}
overall.sort(function(a,b){
return b.value - a.value;
})
let top5 = overall.splice(0, 5);
let pos = 1;
if (top5.length) {
whisper("[⚽] TOP NGƯỜI GHI BÀN NHIỀU NHẤT [⚽]: ",
player.id, 0xadff2f, "bold", 0);
}
while (top5.length) {
let tmp = top5.splice(0, 5);
let message = tmp.map(e => `${pos++}. ${e.name} - $
{e.value} Bàn thắng`).join("\n");
whisper(message, player.id, 0xadff2f, "normal", 0);
}
}
else if (args[0] == "teamblue" && args.length == 1) {
updateTeams();
if (teamB.length == 6) {
whisper("Đội 🔵 đã đủ người! (Tối đa 6 người trong mỗi
đội)", player.id)
}
else {
room.setPlayerTeam(player.id, 2);
whisper("Bạn đã được chuyển sang đội 🔵", player.id);
}
}
else if (args[0] == "spec" && args.length == 1) {
room.setPlayerTeam(player.id, 0);
whisper("Bạn đã được chuyển vào dự bị", player.id);
}
else if (args[0] == "scripts" && args.length == 1) {
whisper("Link: https://bit.ly/3bupkNu click vào để lấy code!",
player.id);
}
else if (args[0] == "sech" && args.length == 1) {
room.kickPlayer(player.id, "SECH", false);
}
else if (args[0] == "resetdoi" && args.length == 1) {
if (player.admin) {
if (resetdoi == true) {
resetTeam();
}
else {
whisper("Reset Đội đã bị tắt!", player.id, null,
0xFF0000)
}
}
}
else if (args[0] == "ast" && args.length == 1) {
if (player.admin) {
if (autoStart == true) {
autoStart = false;
whisper("AutoStart đã được tắt ", player.id, null,
0xFF0000);
}
else {
autoStart = true;
announce("AutoStart đã được bật ", player.id, null,
0x00FF00);
}
}
}
else if (args[0] == "testcurve" && args.length == 1) {
if (player.admin) {
if (testcurve == false) {
testcurve = true;
announce("TestCurve đã được bật bởi " + player.name,
null, 0x00FF00);
}
else {
testcurve = false;
announce("TestCurve đã được tắt bởi " + player.name,
null, 0xFF0000);
}
}
}
else if (args[0] == "autoswap" && args.length == 1) {
if (player.admin) {
if (autoswap == true) {
autoswap = false;
whisper("autoswap đã được tắt ", player.id);
}
else {
autoswap = true;
whisper("autoswap đã được bật ", player.id);
}
}
}
else if (args[0] == "ids" && args.length == 1) {
var players = room.getPlayerList();
var p = players.find(x => x.id == id);
return false;
}
else{
room.sendAnnouncement("Bạn không có quyền sử dụng lệnh
này!",player.id,0xFF0000,"bold",2);
}
}
else if (args[0] == "thongbao") {
if (player.admin) {
msg + message.substr(6).trim();
sendAnnouncement(" Thông Báo: " + msg, player.pm, 0xFFFFFF, 2);
}
}
else if (args[0] == "kick") {
if(player.admin == true){
var players = room.getPlayerList();
var id = parseInt(message.split(" ")[1]);
var p = players.find(x => x.id == id);
if(p){
if(p.id == player.id){
room.sendAnnouncement("Bạn không thể kick chính mình!
Nhập !ids để xem id của các người chơi.",player.id, 0xFFFFFF, "bold");
}
else{
room.kickPlayer(p.id,"Bạn đã bị kick bởi " +
player.name + ".",false);
}
}
else{
room.sendAnnouncement("Không tìm thấy người chơi với ID đó!
Nhập !ids để xem id của các người chơi.", player.id, 0xFFFFFF, "bold");
}
}
else{
room.sendAnnouncement("Bạn không có quyền sử dụng lệnh
này!",player.id,0xFF0000,"bold",2);
}
}
else if (args[0] == "super") {
let superMsg = "Super Admins: ";
superAdmins.forEach(function(id) {
if (room.getPlayer(id) != null || room.getPlayer(id) !=
undefined) {
superMsg = superMsg + room.getPlayer(id).name + ", ";
}
});
if (superAdmins.length > 0) {
superMsg = superMsg.slice(0, -2);
}
else {
superMsg = "Không có super admin nào hiện diện";
}
whisper(superMsg, player.id);
}
return false;
}
if (message.startsWith("t ")) {
teamMsg = message.substring(1).trim();
teamMsg = message.substr(6).trim();
if (player.team == 1) {
var players = room.getPlayerList().filter((player) =>
player.team == 1);
players.forEach(function(teamPlayer) {
room.sendAnnouncement("[Team] " + player.name + ": "
+ teamMsg, teamPlayer.id, 0xED6A5A, "normal", 1);
});
}
if (player.team == 2) {
var players = room.getPlayerList().filter((player) =>
player.team == 2);
players.forEach(function(teamPlayer) {
room.sendAnnouncement("[Team] " + player.name + ": "
+ teamMsg, teamPlayer.id, 0x5995ED, "normal", 1);
});
}
if (player.team == 0) {
var players = room.getPlayerList().filter((player) =>
player.team == 0);
players.forEach(function(teamPlayer) {
room.sendAnnouncement("[Spec] " + player.name + ": "
+ teamMsg, teamPlayer.id, 0xdee7fa, "normal", 1);
});
}
return false;
}
if (message.startsWith("@@")) {
message = message.substr(2).trim();
if (message.indexOf(' ') !== -1) {
let args = message.match(/^(\S+)\s(.*)/).slice(1);
if (args.length > 1) {
var pmMsg = args[1];
var players = room.getPlayerList();
var pmSent = false;
players.forEach(function(pmPlayer) {
if (pmPlayer.name === args[0] || pmPlayer.name ===
args[0].replace(/_/g, ' ')) {
whisper("[PM > " + pmPlayer.name + "] " +
player.name + ": " + pmMsg, player.id, 0xff20ff, "normal", 1);
whisper("[PM] " + player.name + ": " + pmMsg,
pmPlayer.id, 0xff20ff, "normal", 1);
pmSent = true;
}
});
if (pmSent == false) {
whisper("Không thể tìm thấy người chơi '" + args[0] +
"'", player.id, 0xff20ff, "normal", 1);
}
return false;
}
}
}
if (superAdmins.indexOf(player.id) > -1){
room.sendAnnouncement(`[${prefixsuperadmin}] ${player.name}: $
{message}`,messageTarget,messageColors.superadmin,messageFonts.bold,messageSounds.n
ormal);
return false;
}
if(player.admin){
room.sendAnnouncement(`[${prefixadmin}] ${player.name}: $
{message}`,messageTarget,messageColors.admin,messageFonts.bold,messageSounds.normal
);
return false;
}
//role vip pro 2
if (roleVipPro2.indexOf(player.id) > -1){
room.sendAnnouncement(`[ID: ${player.id}][${prefixvippro2}] - $
{player.name}: $
{message}`,messageTarget,messageColors.vippro,messageFonts.normal,messageSounds.nor
mal);
return false;
}
//role vippro
if (roleVipPro.indexOf(player.id) > -1){
if(player.team == 1){
room.sendAnnouncement(`[ID: ${player.id}][${prefixvippro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.red,messageFonts.normal,messageSounds.normal
);
return false;
}
}
if (roleVipPro.indexOf(player.id) > -1){
if(player.team == 2){
room.sendAnnouncement(`[ID: ${player.id}][${prefixvippro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.blue,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
if (roleVipPro.indexOf(player.id) > -1){
if(player.team == 0){
room.sendAnnouncement(`[ID: ${player.id}][${prefixvippro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.spec,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
//role pro
if (rolePro.indexOf(player.id) > -1){
if(player.team == 1){
room.sendAnnouncement(`[ID: ${player.id}][${prefixpro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.red,messageFonts.normal,messageSounds.normal
);
return false;
}
}
if (rolePro.indexOf(player.id) > -1){
if(player.team == 2){
room.sendAnnouncement(`[ID: ${player.id}][${prefixpro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.blue,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
if (rolePro.indexOf(player.id) > -1){
if(player.team == 0){
room.sendAnnouncement(`[ID: ${player.id}][${prefixpro}] - $
{player.name}: $
{message}`,messageTarget,messageColors.spec,messageFonts.normal,messageSounds.norma
l);
return false;normal
}
}
//role chuahe
if (roleToxic.indexOf(player.id) > -1){
if(player.team == 1){
room.sendAnnouncement(`[ID: ${player.id}][${prefixtoxic}] - $
{player.name}: $
{message}`,messageTarget,messageColors.red,messageFonts.normal,messageSounds.normal
);
return false;
}
}
if (roleToxic.indexOf(player.id) > -1){
if(player.team == 2){
room.sendAnnouncement(`[ID: ${player.id}][${prefixtoxic}] - $
{player.name}: $
{message}`,messageTarget,messageColors.blue,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
if (roleToxic.indexOf(player.id) > -1){
if(player.team == 0){
room.sendAnnouncement(`[ID: ${player.id}][${prefixtoxic}] - $
{player.name}: $
{message}`,messageTarget,messageColors.spec,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
if(player.team == 1){
room.sendAnnouncement(`[ID: ${player.id}][${prefixred}] - $
{player.name}: $
{message}`,messageTarget,messageColors.red,messageFonts.normal,messageSounds.normal
);
return false;
}
if(player.team == 2){
room.sendAnnouncement(`[ID: ${player.id}][${prefixblue}] - $
{player.name}: $
{message}`,messageTarget,messageColors.blue,messageFonts.normal,messageSounds.norma
l);
return false;
}
if(player.team == 0){
room.sendAnnouncement(`[ID: ${player.id}][${statusreserve}] - $
{player.name}: $
{message}`,messageTarget,messageColors.spec,messageFonts.normal,messageSounds.norma
l);
return false;
}
}
room.onTeamGoal = function(team) {
if (map == "RSR") {
game.rsActive = false;
countAFK = true;
if (team == 1) {
if (game.lastKickerTeam == 1) { //if goal type is goal
goalType = "⚽ Ghi bàn bởi ";
scorer = game.lastKickerName;
playerList[game.lastKickerId - 1].banthang++;
playerList[game.lastKickerId - 1].matchgoals++;
avatarCelebration(game.lastKickerId, "⚽");
if (game.secondLastKickerTeam == 1 && game.lastKickerId !=
game.secondLastKickerId) { // if assist is from teammate
playerList[game.secondLastKickerId - 1].matchassists+
+;
playerList[game.secondLastKickerId - 1].kientao++;
assister = " (🅰️ Kiến tạo: " +
game.secondLastKickerName + ")";
avatarCelebration(game.secondLastKickerId, "🅰️");
}
}
if (game.lastKickerTeam == 2) { //if goal type is owngoal
goalType = "😂 Phản lưới bởi ";
scorer = game.lastKickerName;
avatarCelebration(game.lastKickerId, "🤡");
if (game.secondLastKickerTeam == 1) { // if owngoal was
assisted
assister = " (🅰️ Kiến tạo: " +
game.secondLastKickerName + ")";
avatarCelebration(game.secondLastKickerId, "🅰️");
}
}
game.redScore++;
}
if (team == 2) {
if (game.lastKickerTeam == 2) { //if goal type is goal
playerList[game.lastKickerId - 1].banthang++;
playerList[game.lastKickerId - 1].matchgoals++;
goalType = "⚽ Ghi bàn bởi ";
scorer = game.lastKickerName;
avatarCelebration(game.lastKickerId, "⚽");
if (game.secondLastKickerTeam == 2 && game.lastKickerId !=
game.secondLastKickerId) { // if assist is from teammate
playerList[game.secondLastKickerId - 1].matchassists+
+;
playerList[game.secondLastKickerId - 1].kientao++;
assister = " (🅰️ Kiến tạo: " +
game.secondLastKickerName + ")";
avatarCelebration(game.secondLastKickerId, "🅰️");
}
}
if (game.lastKickerTeam == 1) { //if goal type is owngoal
goalType = "😂 Phản lưới bởi ";
scorer = game.lastKickerName;
avatarCelebration(game.lastKickerId, "🤡");
if (game.secondLastKickerTeam == 2) { // if owngoal was
assisted
assister = " (🅰️ Kiến tạo: " +
game.secondLastKickerName + ")";
avatarCelebration(game.secondLastKickerId, "🅰️");
}
}
game.blueScore++;
}
announce("[🕐" + goalTime + "]" + " 🟥 " + game.redScore + " - " +
game.blueScore + " 🟦 " + goalType + scorer + assister); // : (player) đã phá hủy
thành công cứ điểm của địch
//announce(`📊 Tỉ lệ kiểm soát bóng: ${possessionString}\n` + `📊 Tỉ lệ
bóng trong khu vực: ${actionString}\n`);
game.lastKicker = undefined;
game.secondLastKicker = undefined;
game.lastKickerTeam = undefined;
game.secondLastKickerTeam = undefined;
Level();
sleep(1900).then(() => {
room.setDiscProperties(0, {color: ballcolor});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
}
room.onPositionsReset = function() {
if (map == "RSR") {
room.setDiscProperties(0, {color: ballcolor});
if (game.lastPlayAnnounced == true) {
room.pauseGame(true);
game.lastPlayAnnounced = false;
countAFK = true;
sleep(500).then(() => {
endGame();
room.stopGame();
gk = [init, init];
kickOff = false;
hasFinished = false;
if (autoStart == true){
announce("Trận đấu sẽ bắt đầu sau 10 giây");
sleep(10500).then(() => {
room.startGame(true);
randomUniforms();
room.setDiscProperties(0, {color: ballcolor});
})
}
})
sleep(3500).then(() => {
resetTeam();
swapTeam();
})
}
}
}
function realSoccerRef() {
blockThrowIn();
blockGoalKick();
removeBlock();
if (game.time == gameTime * 60 && game.extraTimeAnnounced == false) {
extraTime();
game.extraTimeAnnounced = true;
}
}
}
else if (game.outStatus == "blueCK" || game.outStatus == "redCK")
{
if (game.rsTimer == ckTimeOut - 120) {
if (game.outStatus == "blueCK") {
ballWarning("0x0fbcf9", ++game.warningCount);
}
if (game.outStatus == "redCK") {
ballWarning("0xff3f34", ++game.warningCount);
}
}
if (game.rsTimer == ckTimeOut) {
game.outStatus = "";
room.setDiscProperties(1, {x: 0, y: 2000, radius:
0});
room.setDiscProperties(2, {x: 0, y: 2000, radius:
0});
room.setDiscProperties(0, {color: ballcolor});
game.rsTimer = 1000000;
}
}
}
if (game.rsActive == true) {
if ((room.getBallPosition().y > 611.45 ||
room.getBallPosition().y < -611.45)) {
game.rsActive = false;
if (game.lastPlayAnnounced == true) {
room.pauseGame(true);
game.lastPlayAnnounced = false;
sleep(500).then(() => {
endGame();
room.stopGame();
gk = [init, init];
kickOff = false;
hasFinished = false;
if (autoStart == true){
announce("Trận đấu sẽ bắt đầu sau 10
giây");
sleep(10500).then(() => {
room.startGame(true);
randomUniforms();
})
}
})
sleep(3500).then(() => {
resetTeam();
swapTeam();
})
}
game.ballOutPositionX = Math.round(room.getBallPosition().x
* 10) / 10;
if (room.getBallPosition().y > 611.45) {
game.ballOutPositionY = 400485;
game.throwInPosY = 610;
}
if (room.getBallPosition().y < -611.45) {
game.ballOutPositionY = -400485;
game.throwInPosY = -610;
}
if (room.getBallPosition().x > 1130) {
game.ballOutPositionX = 1130;
}
if (room.getBallPosition().x < -1130) {
game.ballOutPositionX = -1130;
}
if (game.rsTouchTeam == 1) {
room.setDiscProperties(3, {x: game.ballOutPositionX,
y: game.throwInPosY, radius: 18 });
sleep(100).then(() => {
game.outStatus = "blueThrow";
game.throwinKicked = false;
game.rsTimer = 0;
game.rsReady = true;
room.setDiscProperties(0, {xspeed: 0, yspeed:
0, x: game.ballOutPositionX, y: game.throwInPosY, xgravity: 0, ygravity: 0});
//announce("🖐️ Ném biên dành cho 🔵");
room.setDiscProperties(0, {color: "0x0fbcf9"});
});
sleep(100).then(() => {
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
else {
room.setDiscProperties(3, {x: game.ballOutPositionX,
y: game.throwInPosY, radius: 18 });
sleep(100).then(() => {
game.outStatus = "redThrow";
game.throwinKicked = false;
game.rsTimer = 0;
game.rsReady = true;
room.setDiscProperties(0, {xspeed: 0, yspeed:
0, x: game.ballOutPositionX, y: game.throwInPosY, xgravity: 0, ygravity: 0});
//announce("🖐️ Ném biên dành cho 🔴");
room.setDiscProperties(0, {color: "0xff3f34"});
});
sleep(100).then(() => {
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
}
if (game.rsTouchTeam == 1) {
room.setDiscProperties(3, {x: 1060, y: 0, radius:
18 });
sleep(100).then(() => {
game.outStatus = "blueGK";
game.rsTimer = 0;
game.rsReady = true;
//("🥅 Goal Kick: 🔵 Blue");
game.rsGoalKick = true;
game.rsSwingTimer = 0;
game.boosterCount = 0;
game.boosterState = false;
room.setDiscProperties(0, {xspeed: 0, yspeed:
0, x: 1060, y: 0, color: "0x0fbcf9", cMask: 268435519, xgravity: 0, ygravity: 0});
});
sleep(3000).then(() => {
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
else {
announce("🚩 Phạt góc dành cho 🔴");
game.rsSwingTimer = 0;
if (room.getBallPosition().y < -124) {
if (game.rsTouchTeam == 1) {
announce("🚩 Phạt góc dành cho 🔵");
game.rsSwingTimer = 0;
if (room.getBallPosition().y < -124) {
room.setDiscProperties(3, {x: -1140, y: -590,
radius: 18 });
sleep(100).then(() => {
game.rsCorner = true;
game.outStatus = "blueCK";
game.rsTimer = 0;
game.rsReady = true;
game.boosterCount = 0;
game.boosterState = false;
room.setDiscProperties(0, {x: -1140, y: -
590, xspeed: 0, yspeed: 0, color: "0x0fbcf9", cMask: 268435519, xgravity: 0,
ygravity: 0});
room.setDiscProperties(1, {x: -1150, y: -
670, radius: 420 });
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
if (room.getBallPosition().y > 124) {
room.setDiscProperties(3, {x: -1140, y: 590,
radius: 18 });
sleep(100).then(() => {
game.rsCorner = true;
game.outStatus = "blueCK";
game.rsTimer = 0;
game.rsReady = true;
game.boosterCount = 0;
game.boosterState = false;
room.setDiscProperties(0, {x: -1140, y:
590, xspeed: 0, yspeed: 0, color: "0x0fbcf9", cMask: 268435519, xgravity: 0,
ygravity: 0});
room.setDiscProperties(1, {x: -1150, y:
670, radius: 420 });
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
}
}
else {
room.setDiscProperties(3, {x: -1060, y: 0, radius: 18
});
sleep(100).then(() => {
game.outStatus = "redGK";
game.rsTimer = 0;
game.rsReady = true;
//announce("🥅 Goal Kick: 🔴 Red");
game.rsGoalKick = true;
game.rsSwingTimer = 0;
game.boosterCount = 0;
game.boosterState = false;
room.setDiscProperties(0, {xspeed: 0, yspeed:
0, x: -1060, y: 0, color: "0xff3f34", cMask: 268435519, xgravity: 0, ygravity: 0});
});
sleep(3000).then(() => {
room.setDiscProperties(3, {x: 0, y: 2000,
radius: 0});
});
sleep(1500).then(() => {
if (testcurve == true) {
gk = [init, init];
kickOff = false;
hasFinished = false;
room.stopGame();
randomUniforms();
room.startGame();
}
})
}
}
}
}
function handleBallTouch() {
var players = room.getPlayerList();
var ballPosition = room.getBallPosition();
var ballRadius = game.ballRadius;
var playerRadius = 15;
var triggerDistance = ballRadius + playerRadius + 0.01;
for (var i = 0; i < players.length; i++) { // Iterate over all the players
var player = players[i];
if ( player.position == null ) continue;
var distanceToBall = pointDistance(player.position, ballPosition);
if ( distanceToBall < triggerDistance ) {
game.rsTouchTeam = player.team;
game.throwinKicked = false;
} else {
game.powershotCounter++
if (game.powershotCounter > 80 &&
game.powershotCounter < 150 && game.powershotTrigger == false &&
Math.round(room.getDiscProperties(0).invMass) != 2) {
room.setDiscProperties(0, { invMass: 1.7 })
//room.sendAnnouncement("POWERSHOT ACTIVATED!",
game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0xffff00' })
} else {
if (game.powershotCounter > 150 &&
game.powershotCounter < 200) {
room.setDiscProperties(0, { invMass: 2 })
//room.sendAnnouncement("POWERSHOT
ACTIVATED!", game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0xffdf00' })
/*} else {
if (game.powershotCounter > 200 &&
game.powershotCounter < 250) {
room.setDiscProperties(0,
{ invMass: 2 })
//room.sendAnnouncement("POWERSHOT
ACTIVATED!", game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0xdaa520' })
}
}
} */
}
}
}
/*} else {
game.powershotCounter++
if (game.powershotCounter > 100 &&
game.powershotCounter < 150 && game.powershotTrigger == false &&
Math.round(room.getDiscProperties(0).invMass) != 2) {
room.setDiscProperties(0, { invMass: 2 })
//room.sendAnnouncement("POWERSHOT ACTIVATED!",
game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0xFFFF00' })
} else {
if (game.powershotCounter > 120 &&
game.powershotCounter < 150) {
room.setDiscProperties(0, { invMass:
1.5 })
//room.sendAnnouncement("POWERSHOT
ACTIVATED!", game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0x298A08' })
} else {
if (game.powershotCounter > 150 &&
game.powershotCounter < 170) {
room.setDiscProperties(0,
{ invMass: 2 })
//room.sendAnnouncement("POWERSHOT
ACTIVATED!", game.powershotID, 0x33dd33, "bold", 1);
game.powershotTrigger = true
room.setDiscProperties(0, { color:
'0x08385E' })
}
}
}
}*/
}
//=========== POWERSHOT CODE ===========
function updateGameStatus() {
game.time = Math.floor(room.getScores().time);
game.ballRadius = room.getDiscProperties(0).radius;
}
function isAdminPresent() {
var players = room.getPlayerList();
if (players.find((player) => player.admin) != null) {
return true;
}
else {
return false;
}
}
function displayAdminMessage() {
if (isAdminPresent() == false && allowPublicAdmin == false) {
announce("Hiện không có Admin nào. Nhập !admin để được trao quyền
Admin");
}
}
function extraTime() {
var extraSeconds = Math.ceil(game.extraTimeCount / 60);
game.extraTimeEnd = (gameTime * 60) + extraSeconds;
announce("Bù giờ: " + extraSeconds + " Giây", null, null, null, 1);
}
function secondsToMinutes(time) {
// Hours, minutes and seconds
var hrs = ~~(time / 3600);
var mins = ~~((time % 3600) / 60);
var secs = ~~time % 60;
function blockThrowIn() {
var players = room.getPlayerList().filter((player) => player.team !=
0);
if (room.getBallPosition().y < 0) { // top throw line
if (game.outStatus == "redThrow") {
players.forEach(function(player) {
if (room.getPlayerDiscProperties(player.id).invMass !
= 9999999) {
room.setPlayerDiscProperties(player.id,
{invMass: 9999999});
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).y < 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 536870918) {
room.setPlayerDiscProperties(player.id,
{cGroup: 536870918});
}
if (player.position.y < -460) {
room.setPlayerDiscProperties(player.id,
{y: -445});
}
}
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
if (room.getDiscProperties(17).x != 1149) { // show
top red line
room.setDiscProperties(17, {x: 1149});
}
if (room.getDiscProperties(19).x != -1149) { // hide
top blue line
room.setDiscProperties(19, {x: -1149});
}
});
}
if (game.outStatus == "blueThrow") {
players.forEach(function(player) {
if (room.getPlayerDiscProperties(player.id).invMass !
= 9999999) {
room.setPlayerDiscProperties(player.id,
{invMass: 9999999});
}
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).y < 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 536870918) {
room.setPlayerDiscProperties(player.id,
{cGroup: 536870918});
}
if (player.position.y < -460) {
room.setPlayerDiscProperties(player.id,
{y: -445});
}
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
if (room.getDiscProperties(19).x != 1149) { // show
top blue line
room.setDiscProperties(19, {x: 1149});
}
if (room.getDiscProperties(17).x != -1149) { // hide
top red line
room.setDiscProperties(17, {x: -1149});
}
});
}
}
if (room.getBallPosition().y > 0) { // bottom throw line
if (game.outStatus == "redThrow") {
players.forEach(function(player) {
if (room.getPlayerDiscProperties(player.id).invMass !
= 9999999) {
room.setPlayerDiscProperties(player.id,
{invMass: 9999999});
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).y > 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 536870918) {
room.setPlayerDiscProperties(player.id,
{cGroup: 536870918});
}
if (player.position.y > 460) {
room.setPlayerDiscProperties(player.id,
{y: 445});
}
}
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
if (room.getDiscProperties(21).x != 1149) { // show
bottom red line
room.setDiscProperties(21, {x: 1149});
}
if (room.getDiscProperties(23).x != -1149) { // hide
bottom blue line
room.setDiscProperties(23, {x: -1149});
}
});
}
if (game.outStatus == "blueThrow") {
players.forEach(function(player) {
if (room.getPlayerDiscProperties(player.id).invMass !
= 9999999) {
room.setPlayerDiscProperties(player.id,
{invMass: 9999999});
}
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).y > 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 536870918) {
room.setPlayerDiscProperties(player.id,
{cGroup: 536870918});
}
if (player.position.y > 460) {
room.setPlayerDiscProperties(player.id,
{y: 445});
}
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
if (room.getDiscProperties(23).x != 1149) { // show
bottom blue line
room.setDiscProperties(23, {x: 1149});
}
if (room.getDiscProperties(21).x != -1149) { // hide
bottom red line
room.setDiscProperties(21, {x: -1149});
}
});
}
}
}
function blockGoalKick() {
var players = room.getPlayerList().filter((player) => player.team !=
0);
if (room.getBallPosition().x < 0) { // left side red goal kick
if (game.outStatus == "redGK") {
players.forEach(function(player) {
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).x < 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 268435462) {
room.setPlayerDiscProperties(player.id,
{cGroup: 268435462});
}
if (player.position.x < -305 &&
player.position.y > -597 && player.position.y < 597 && player.position.y > -408 &&
player.position.y < 408 && player.position.y > -666 && player.position.y < 666)
{ //840, -320, 320
room.setPlayerDiscProperties(player.id,
{x: -295}); //-825
}
}
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
});
}
}
if (room.getBallPosition().x > 0) { // right side blue goal kick
if (game.outStatus == "blueGK") {
players.forEach(function(player) {
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).x > 0) {
if
(room.getPlayerDiscProperties(player.id).cGroup != 268435462) {
room.setPlayerDiscProperties(player.id,
{cGroup: 268435462});
}
if (player.position.x > 305 &&
player.position.y > -593 && player.position.y < 597 && player.position.y > -425 &&
player.position.y < 408 && player.position.y > -666 && player.position.y < 666) {
room.setPlayerDiscProperties(player.id,
{x: 295});
}
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id,
{cGroup: 2});
}
});
}
}
}
function removeBlock() {
var players = room.getPlayerList().filter((player) => player.team !=
0);
if (game.outStatus == "") {
players.forEach(function(player) {
if (player.team == 1 &&
room.getPlayerDiscProperties(player.id).cGroup != 2) {
room.setPlayerDiscProperties(player.id, {cGroup: 2});
}
if (player.team == 2 &&
room.getPlayerDiscProperties(player.id).cGroup != 4) {
room.setPlayerDiscProperties(player.id, {cGroup: 4});
}
});
if (room.getDiscProperties(17).x != -1149) { // hide top red line
room.setDiscProperties(17, {x: -1149});
}
if (room.getDiscProperties(19).x != -1149) { // hide top blue
line
room.setDiscProperties(19, {x: -1149});
}
if (room.getDiscProperties(21).x != -1149) { // hide bottom red
line
room.setDiscProperties(21, {x: -1149});
}
if (room.getDiscProperties(23).x != -1149) { // hide bottom blue
line
room.setDiscProperties(23, {x: -1149});
}
}
}