Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var room = HBInit({ roomName: "____[FLH]____ Futsal x3", maxPlayers: 10, playerName : "Bot", public : true});
- map = `{
- "name" : "Futsal x3 FLH",
- "width" : 648,
- "height" : 270,
- "spawnDistance" : 350,
- "bg" : { "type" : "hockey", "width" : 550, "height" : 240, "kickOffRadius" : 80,
- "cornerRadius" : 0 },
- "vertexes" : [
- /* 0 */ { "x" : 550, "y" : 240, "trait" : "ballArea" },
- /* 1 */ { "x" : 550, "y" : -240, "trait" : "ballArea" },
- /* 2 */ { "x" : 0, "y" : 270, "trait" : "kickOffBarrier" },
- /* 3 */ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier", "color" : "D8D8D8", "vis"
- : true, "curve" : 180 },
- /* 4 */ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier", "color" : "D8D8D8",
- "vis" : true, "curve" : 180 },
- /* 5 */ { "x" : 0, "y" : -270, "trait" : "kickOffBarrier" },
- /* 6 */ { "x" : -550, "y" : -80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [-700,-80 ] },
- /* 7 */ { "x" : -590, "y" : -80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [-700,-80 ] },
- /* 8 */ { "x" : -590, "y" : 80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [-700,80 ] },
- /* 9 */ { "x" : -550, "y" : 80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [-700,80 ] },
- /* 10 */ { "x" : 550, "y" : -80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [700,-80 ] },
- /* 11 */ { "x" : 590, "y" : -80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [700,-80 ] },
- /* 12 */ { "x" : 590, "y" : 80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [700,80 ] },
- /* 13 */ { "x" : 550, "y" : 80, "cMask" : ["red","blue","ball" ], "trait" :
- "goalNet", "curve" : 0, "color" : "2E2E2E", "pos" : [700,80 ] },
- /* 14 */ { "x" : -550, "y" : 80, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8", "pos" : [-700,80 ] },
- /* 15 */ { "x" : -550, "y" : 240, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8" },
- /* 16 */ { "x" : -550, "y" : -80, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8", "pos" : [-700,-80 ] },
- /* 17 */ { "x" : -550, "y" : -240, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8" },
- /* 18 */ { "x" : -550, "y" : 240, "bCoef" : 1, "cMask" : ["ball" ], "trait" :
- "ballArea" },
- /* 19 */ { "x" : 550, "y" : 240, "bCoef" : 1, "cMask" : ["ball" ], "trait" :
- "ballArea" },
- /* 20 */ { "x" : 550, "y" : 80, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "pos" : [700,80 ] },
- /* 21 */ { "x" : 550, "y" : 240, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea" },
- /* 22 */ { "x" : 550, "y" : -240, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8" },
- /* 23 */ { "x" : 550, "y" : -80, "bCoef" : 1.25, "cMask" : ["ball" ], "trait" :
- "ballArea", "color" : "F8F8F8", "pos" : [700,-80 ] },
- /* 24 */ { "x" : 550, "y" : -240, "bCoef" : 0, "cMask" : ["ball" ], "trait" :
- "ballArea" },
- /* 25 */ { "x" : 550, "y" : -240, "bCoef" : 0, "cMask" : ["ball" ], "trait" :
- "ballArea" },
- /* 26 */ { "x" : -550, "y" : -240, "bCoef" : 1, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0 },
- /* 27 */ { "x" : 550, "y" : -240, "bCoef" : 1, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0 },
- /* 28 */ { "x" : 0, "y" : -240, "bCoef" : 0.1, "cMask" : ["red","blue" ], "cGroup"
- : ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- /* 29 */ { "x" : 0, "y" : -80, "bCoef" : 0.1, "cMask" : ["red","blue" ], "cGroup"
- : ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- /* 30 */ { "x" : 0, "y" : 80, "bCoef" : 0.1, "cMask" : ["red","blue" ], "cGroup" :
- ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- /* 31 */ { "x" : 0, "y" : 240, "bCoef" : 0.1, "cMask" : ["red","blue" ], "cGroup"
- : ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- /* 32 */ { "x" : 0, "y" : -80, "bCoef" : 0.1, "cMask" : ["red","blue" ], "trait" :
- "kickOffBarrier", "vis" : true, "color" : "F8F8F8" },
- /* 33 */ { "x" : 0, "y" : 80, "bCoef" : 0.1, "cMask" : ["red","blue" ], "trait" :
- "kickOffBarrier", "vis" : true, "color" : "F8F8F8" },
- /* 34 */ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier", "color" : "F8F8F8",
- "vis" : true, "curve" : -180 },
- /* 35 */ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier", "color" : "F8F8F8",
- "vis" : true, "curve" : -180 },
- /* 36 */ { "x" : 0, "y" : 80, "trait" : "kickOffBarrier", "color" : "F8F8F8",
- "vis" : true, "curve" : 0 },
- /* 37 */ { "x" : 0, "y" : -80, "trait" : "kickOffBarrier", "color" : "F8F8F8",
- "vis" : true, "curve" : 0 },
- /* 38 */ { "x" : -557.5, "y" : 80, "bCoef" : 0.1, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0, "vis" : false, "pos" : [-700,80 ] },
- /* 39 */ { "x" : -557.5, "y" : 240, "bCoef" : 2, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0, "vis" : false },
- /* 40 */ { "x" : -557.5, "y" : -240, "bCoef" : 2, "cMask" : ["ball" ], "trait" :
- "ballArea", "vis" : false, "curve" : 0 },
- /* 41 */ { "x" : -557.5, "y" : -80, "bCoef" : 0.1, "cMask" : ["ball" ], "trait" :
- "ballArea", "vis" : false, "curve" : 0, "pos" : [-700,-80 ] },
- /* 42 */ { "x" : 557.5, "y" : -240, "bCoef" : 2, "cMask" : ["ball" ], "trait" :
- "ballArea", "vis" : false, "curve" : 0 },
- /* 43 */ { "x" : 557.5, "y" : -80, "bCoef" : 0.1, "cMask" : ["ball" ], "trait" :
- "ballArea", "vis" : false, "curve" : 0, "pos" : [700,-80 ] },
- /* 44 */ { "x" : 557.5, "y" : 80, "bCoef" : 0.1, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0, "vis" : false, "pos" : [700,80 ] },
- /* 45 */ { "x" : 557.5, "y" : 240, "bCoef" : 2, "cMask" : ["ball" ], "trait" :
- "ballArea", "curve" : 0, "vis" : false },
- /* 46 */ { "x" : 0, "y" : -80, "bCoef" : 0.1, "trait" : "line", "color" : "F8F8F8"
- },
- /* 47 */ { "x" : 0, "y" : 80, "bCoef" : 0.1, "trait" : "line", "color" : "F8F8F8"
- },
- /* 48 */ { "x" : -550, "y" : -80, "bCoef" : 0.1, "trait" : "line", "color" :
- "D8D8D8" },
- /* 49 */ { "x" : -550, "y" : 80, "bCoef" : 0.1, "trait" : "line", "color" :
- "D8D8D8" },
- /* 50 */ { "x" : 550, "y" : -80, "bCoef" : 0.1, "trait" : "line", "color" :
- "D8D8D8" },
- /* 51 */ { "x" : 550, "y" : 80, "bCoef" : 0.1, "trait" : "line", "color" :
- "D8D8D8" },
- /* 52 */ { "x" : -550, "y" : 200, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : -90 },
- /* 53 */ { "x" : -390, "y" : 70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 0 },
- /* 54 */ { "x" : -550, "y" : 226, "bCoef" : 0.1, "trait" : "line", "curve" : -90
- },
- /* 55 */ { "x" : -536, "y" : 240, "bCoef" : 0.1, "trait" : "line", "curve" : -90
- },
- /* 56 */ { "x" : -550, "y" : -200, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 90 },
- /* 57 */ { "x" : -390, "y" : -70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 0 },
- /* 58 */ { "x" : -550, "y" : -226, "bCoef" : 0.1, "trait" : "line", "curve" : 90
- },
- /* 59 */ { "x" : -536, "y" : -240, "bCoef" : 0.1, "trait" : "line", "curve" : 90
- },
- /* 60 */ { "x" : 556, "y" : 123, "bCoef" : 0.1, "trait" : "line" },
- /* 61 */ { "x" : 575, "y" : 123, "bCoef" : 0.1, "trait" : "line" },
- /* 62 */ { "x" : -556, "y" : -123, "bCoef" : 0.1, "trait" : "line" },
- /* 63 */ { "x" : 556, "y" : -123, "bCoef" : 0.1, "trait" : "line" },
- /* 64 */ { "x" : 550, "y" : -226, "bCoef" : 0.1, "trait" : "line", "curve" : -90
- },
- /* 65 */ { "x" : 536, "y" : -240, "bCoef" : 0.1, "trait" : "line", "curve" : -90
- },
- /* 66 */ { "x" : 550, "y" : 226, "bCoef" : 0.1, "trait" : "line", "curve" : 90 },
- /* 67 */ { "x" : 536, "y" : 240, "bCoef" : 0.1, "trait" : "line", "curve" : 90 },
- /* 68 */ { "x" : 550, "y" : 200, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 90 },
- /* 69 */ { "x" : 390, "y" : 70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 90 },
- /* 70 */ { "x" : 550, "y" : -200, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : -90 },
- /* 71 */ { "x" : 390, "y" : -70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : -90 },
- /* 72 */ { "x" : 390, "y" : 70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 0 },
- /* 73 */ { "x" : 390, "y" : -70, "bCoef" : 0.1, "trait" : "line", "color" :
- "F8F8F8", "curve" : 0 },
- /* 74 */ { "x" : -375, "y" : 1, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 75 */ { "x" : -375, "y" : -1, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 76 */ { "x" : -375, "y" : 3, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 77 */ { "x" : -375, "y" : -3, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 78 */ { "x" : -375, "y" : -2, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 79 */ { "x" : -375, "y" : 2, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 80 */ { "x" : -375, "y" : -3.5, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 81 */ { "x" : -375, "y" : 3.5, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 82 */ { "x" : 375, "y" : 1, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 83 */ { "x" : 375, "y" : -1, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 84 */ { "x" : 375, "y" : 3, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 85 */ { "x" : 375, "y" : -3, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 86 */ { "x" : 375, "y" : -2, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 87 */ { "x" : 375, "y" : 2, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 88 */ { "x" : 375, "y" : -3.5, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 89 */ { "x" : 375, "y" : 3.5, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 90 */ { "x" : -277.5, "y" : 1, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 91 */ { "x" : -277.5, "y" : -1, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 92 */ { "x" : -277.5, "y" : 3, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 93 */ { "x" : -277.5, "y" : -3, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 94 */ { "x" : -277.5, "y" : -2, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 95 */ { "x" : -277.5, "y" : 2, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 96 */ { "x" : -277.5, "y" : -3.5, "bCoef" : 0.1, "trait" : "line", "curve" :
- 180 },
- /* 97 */ { "x" : -277.5, "y" : 3.5, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 98 */ { "x" : 277.5, "y" : 1, "bCoef" : 0.1, "trait" : "line", "curve" : 180 },
- /* 99 */ { "x" : 277.5, "y" : -1, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 100 */ { "x" : 277.5, "y" : 3, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 101 */ { "x" : 277.5, "y" : -3, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 102 */ { "x" : 277.5, "y" : -2, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 103 */ { "x" : 277.5, "y" : 2, "bCoef" : 0.1, "trait" : "line", "curve" : 180
- },
- /* 104 */ { "x" : 277.5, "y" : -3.5, "bCoef" : 0.1, "trait" : "line", "curve" :
- 180 },
- /* 105 */ { "x" : 448.5, "y" : 31.5, "bCoef" : 0.1, "trait" : "line", "curve" :
- 180 },
- /* 106 */ { "bCoef" : 0.1, "trait" : "line", "x" : -40.5, "y" : -33, "color" :
- "848484" },
- /* 107 */ { "bCoef" : 0.1, "trait" : "line", "x" : -59.5, "y" : -33, "color" :
- "848484" },
- /* 108 */ { "bCoef" : 0.1, "trait" : "line", "x" : -60.5, "y" : 31, "color" :
- "848484" },
- /* 109 */ { "bCoef" : 0.1, "trait" : "line", "x" : -40.5, "y" : -5, "color" :
- "848484" },
- /* 110 */ { "bCoef" : 0.1, "trait" : "line", "x" : -59.5, "y" : -5, "color" :
- "848484" },
- /* 111 */ { "bCoef" : 0.1, "trait" : "line", "x" : -18.5, "y" : -39, "color" :
- "848484" },
- /* 112 */ { "bCoef" : 0.1, "trait" : "line", "x" : -19.5, "y" : 52, "color" :
- "848484" },
- /* 113 */ { "bCoef" : 0.1, "trait" : "line", "x" : 20.5, "y" : 52, "color" :
- "848484" },
- /* 114 */ { "bCoef" : 0.1, "trait" : "line", "x" : 14.5, "y" : -22, "color" :
- "848484" },
- /* 115 */ { "bCoef" : 0.1, "trait" : "line", "x" : 16.5, "y" : 25, "color" :
- "848484" },
- /* 116 */ { "bCoef" : 0.1, "trait" : "line", "x" : 19.5, "y" : -3, "color" :
- "848484" },
- /* 117 */ { "bCoef" : 0.1, "trait" : "line", "x" : 45.5, "y" : -2, "color" :
- "848484" },
- /* 118 */ { "bCoef" : 0.1, "trait" : "line", "x" : 49.5, "y" : -20, "color" :
- "848484" },
- /* 119 */ { "bCoef" : 0.1, "trait" : "line", "x" : 40.5, "y" : 29, "color" :
- "848484" },
- /* 120 */ { "bCoef" : 0.1, "trait" : "line", "x" : -19.5, "y" : 53, "color" :
- "000000" },
- /* 121 */ { "bCoef" : 0.1, "trait" : "line", "x" : 49.5, "y" : 83, "color" :
- "000000" },
- /* 122 */ { "bCoef" : 0.1, "trait" : "line", "x" : -15.5, "y" : -39, "color" :
- "000000" },
- /* 123 */ { "bCoef" : 0.1, "trait" : "line", "x" : -209.5, "y" : 84 },
- /* 124 */ { "bCoef" : 0.1, "trait" : "line", "x" : -209.5, "y" : -88 },
- /* 125 */ { "bCoef" : 0.1, "trait" : "line", "x" : 4.5, "y" : 52 },
- /* 126 */ { "bCoef" : 0.1, "trait" : "line", "x" : -11.5, "y" : 52 }
- ],
- "segments" : [
- { "v0" : 6, "v1" : 7, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "pos" : [-700,-80 ], "y" : -80 },
- { "v0" : 7, "v1" : 8, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "x" : -590 },
- { "v0" : 8, "v1" : 9, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "pos" : [-700,80 ], "y" : 80 },
- { "v0" : 10, "v1" : 11, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "pos" : [700,-80 ], "y" : -80 },
- { "v0" : 11, "v1" : 12, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "x" : 590 },
- { "v0" : 12, "v1" : 13, "curve" : 0, "color" : "2E2E2E", "cMask" :
- ["red","blue","ball" ], "trait" : "goalNet", "pos" : [700,80 ], "y" : 80 },
- { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },
- { "v0" : 3, "v1" : 4, "curve" : 180, "vis" : true, "color" : "D8D8D8", "cGroup" :
- ["blueKO" ], "trait" : "kickOffBarrier" },
- { "v0" : 3, "v1" : 4, "curve" : -180, "vis" : true, "color" : "D8D8D8", "cGroup" :
- ["redKO" ], "trait" : "kickOffBarrier" },
- { "v0" : 4, "v1" : 5, "trait" : "kickOffBarrier" },
- { "v0" : 14, "v1" : 15, "vis" : true, "color" : "F8F8F8", "bCoef" : 1.25, "cMask"
- : ["ball" ], "trait" : "ballArea", "x" : -550 },
- { "v0" : 16, "v1" : 17, "vis" : true, "color" : "F8F8F8", "bCoef" : 1.25, "cMask"
- : ["ball" ], "trait" : "ballArea", "x" : -550 },
- { "v0" : 18, "v1" : 19, "vis" : true, "color" : "F8F8F8", "bCoef" : 1, "cMask" :
- ["ball" ], "trait" : "ballArea", "y" : 240 },
- { "v0" : 20, "v1" : 21, "vis" : true, "color" : "F8F8F8", "bCoef" : 1.25, "cMask"
- : ["ball" ], "trait" : "ballArea", "x" : 550 },
- { "v0" : 22, "v1" : 23, "vis" : true, "color" : "F8F8F8", "bCoef" : 1.25, "cMask"
- : ["ball" ], "trait" : "ballArea", "x" : 550 },
- { "v0" : 24, "v1" : 25, "vis" : true, "color" : "F8F8F8", "bCoef" : 0, "cMask" :
- ["ball" ], "trait" : "ballArea", "x" : 550, "y" : -240 },
- { "v0" : 26, "v1" : 27, "curve" : 0, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 1, "cMask" : ["ball" ], "trait" : "ballArea", "y" : -240 },
- { "v0" : 28, "v1" : 29, "vis" : true, "color" : "F8F8F8", "bCoef" : 0.1, "cMask" :
- ["red","blue" ], "cGroup" : ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- { "v0" : 30, "v1" : 31, "vis" : true, "color" : "F8F8F8", "bCoef" : 0.1, "cMask" :
- ["red","blue" ], "cGroup" : ["redKO","blueKO" ], "trait" : "kickOffBarrier" },
- { "v0" : 38, "v1" : 39, "curve" : 0, "vis" : false, "color" : "F8F8F8", "bCoef" :
- 2, "cMask" : ["ball" ], "trait" : "ballArea", "x" : -557.5 },
- { "v0" : 40, "v1" : 41, "curve" : 0, "vis" : false, "color" : "F8F8F8", "bCoef" :
- 2, "cMask" : ["ball" ], "trait" : "ballArea", "x" : -557.5 },
- { "v0" : 42, "v1" : 43, "curve" : 0, "vis" : false, "color" : "F8F8F8", "bCoef" :
- 2, "cMask" : ["ball" ], "trait" : "ballArea", "x" : 557.5 },
- { "v0" : 44, "v1" : 45, "curve" : 0, "vis" : false, "color" : "F8F8F8", "bCoef" :
- 2, "cMask" : ["ball" ], "trait" : "ballArea", "x" : 557.5 },
- { "v0" : 48, "v1" : 49, "curve" : 0, "vis" : true, "color" : "D8D8D8", "bCoef" :
- 0.1, "trait" : "line", "x" : -550 },
- { "v0" : 50, "v1" : 51, "curve" : 0, "vis" : true, "color" : "D8D8D8", "bCoef" :
- 0.1, "trait" : "line", "x" : 550 },
- { "v0" : 52, "v1" : 53, "curve" : -67.70445587942432, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line" },
- { "v0" : 55, "v1" : 54, "curve" : -90, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line" },
- { "v0" : 56, "v1" : 57, "curve" : 64.91179460901864, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line" },
- { "v0" : 53, "v1" : 57, "curve" : -37.91741019945423, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line" },
- { "v0" : 59, "v1" : 58, "curve" : 90, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line" },
- { "v0" : 65, "v1" : 64, "curve" : -90, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line" },
- { "v0" : 67, "v1" : 66, "curve" : 90, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line" },
- { "v0" : 68, "v1" : 69, "curve" : 59.88872324284662, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line" },
- { "v0" : 70, "v1" : 71, "curve" : -63.05797607550682, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line" },
- { "v0" : 72, "v1" : 73, "curve" : 41.14373291858825, "vis" : true, "color" :
- "F8F8F8", "bCoef" : 0.1, "trait" : "line", "x" : 390 },
- { "v0" : 75, "v1" : 74, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 74, "v1" : 75, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 77, "v1" : 76, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 76, "v1" : 77, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 79, "v1" : 78, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 78, "v1" : 79, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 81, "v1" : 80, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 80, "v1" : 81, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -375 },
- { "v0" : 83, "v1" : 82, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 82, "v1" : 83, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 85, "v1" : 84, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 84, "v1" : 85, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 87, "v1" : 86, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 86, "v1" : 87, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 89, "v1" : 88, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 88, "v1" : 89, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 375 },
- { "v0" : 91, "v1" : 90, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 90, "v1" : 91, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 93, "v1" : 92, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 92, "v1" : 93, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 95, "v1" : 94, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 94, "v1" : 95, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 97, "v1" : 96, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 96, "v1" : 97, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : -277.5 },
- { "v0" : 99, "v1" : 98, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 277.5 },
- { "v0" : 98, "v1" : 99, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef" :
- 0.1, "trait" : "line", "x" : 277.5 },
- { "v0" : 101, "v1" : 100, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef"
- : 0.1, "trait" : "line", "x" : 277.5 },
- { "v0" : 100, "v1" : 101, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef"
- : 0.1, "trait" : "line", "x" : 277.5 },
- { "v0" : 103, "v1" : 102, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef"
- : 0.1, "trait" : "line", "x" : 277.5 },
- { "v0" : 102, "v1" : 103, "curve" : 180, "vis" : true, "color" : "F8F8F8", "bCoef"
- : 0.1, "trait" : "line", "x" : 277.5 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 106, "v1" : 107 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 107, "v1" : 108 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 109, "v1" : 110 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 111, "v1" : 112 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 112, "v1" : 113 },
- { "curve" : 41.14373291858825, "vis" : true, "color" : "848484", "bCoef" : 0.1,
- "trait" : "line", "v0" : 114, "v1" : 115 },
- { "curve" : 41.14373291858825, "vis" : true, "color" : "848484", "bCoef" : 0.1,
- "trait" : "line", "v0" : 116, "v1" : 117 },
- { "curve" : 40.183975457180495, "vis" : true, "color" : "848484", "bCoef" : 0.1,
- "trait" : "line", "v0" : 118, "v1" : 119 },
- { "curve" : 0, "vis" : true, "color" : "F8F8F8", "bCoef" : 0.1, "trait" : "line",
- "v0" : 46, "v1" : 47 },
- { "curve" : 0, "vis" : true, "color" : "848484", "bCoef" : 0.1, "trait" : "line",
- "v0" : 125, "v1" : 126 }
- ],
- "goals" : [
- { "p0" : [-556.3,-80 ], "p1" : [-556.3,80 ], "team" : "red" },
- { "p0" : [556.3,80 ], "p1" : [556.3,-80 ], "team" : "blue" }
- ],
- "discs" : [
- { "radius" : 5, "pos" : [-550,80 ], "color" : "000000", "trait" : "goalPost", "y"
- : 80 },
- { "radius" : 5, "pos" : [-550,-80 ], "color" : "000000", "trait" : "goalPost", "y"
- : -80, "x" : -560 },
- { "radius" : 5, "pos" : [550,80 ], "color" : "000000", "trait" : "goalPost", "y" :
- 80 },
- { "radius" : 5, "pos" : [550,-80 ], "color" : "000000", "trait" : "goalPost", "y"
- : -80 },
- { "radius" : 3, "invMass" : 0, "pos" : [-550,240 ], "color" : "CED8F6", "bCoef" :
- 0.1, "trait" : "line" },
- { "radius" : 3, "invMass" : 0, "pos" : [-550,-240 ], "color" : "CED8F6", "bCoef" :
- 0.1, "trait" : "line" },
- { "radius" : 3, "invMass" : 0, "pos" : [550,-240 ], "color" : "CED8F6", "bCoef" :
- 0.1, "trait" : "line" },
- { "radius" : 3, "invMass" : 0, "pos" : [550,240 ], "color" : "CED8F6", "bCoef" :
- 0.1, "trait" : "line" }
- ],
- "planes" : [
- { "normal" : [0,1 ], "dist" : -240, "bCoef" : 1, "trait" : "ballArea", "vis" :
- false, "curve" : 0 },
- { "normal" : [0,-1 ], "dist" : -240, "bCoef" : 1, "trait" : "ballArea" },
- { "normal" : [0,1 ], "dist" : -270, "bCoef" : 0.1 },
- { "normal" : [0,-1 ], "dist" : -270, "bCoef" : 0.1 },
- { "normal" : [1,0 ], "dist" : -642, "bCoef" : 0.1 },
- { "normal" : [-1,0 ], "dist" : -644, "bCoef" : 0.1 },
- { "normal" : [1,0 ], "dist" : -642, "bCoef" : 0.1, "trait" : "ballArea", "vis" :
- false, "curve" : 0 },
- { "normal" : [-1,0 ], "dist" : -643, "bCoef" : 0.1, "trait" : "ballArea", "vis" :
- false, "curve" : 0 }
- ],
- "traits" : {
- "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball" ] },
- "goalPost" : { "radius" : 8, "invMass" : 0, "bCoef" : 0.5 },
- "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball" ] },
- "line" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["" ] },
- "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO","blueKO" ],
- "cMask" : ["red","blue" ] }
- },
- "playerPhysics" : {
- "bCoef" : 0,
- "acceleration" : 0.11,
- "kickingAcceleration" : 0.083,
- "kickStrength" : 4.5
- },
- "ballPhysics" : {
- "radius" : 6.25,
- "bCoef" : 0.4,
- "invMass" : 1.5,
- "damping" : 0.99,
- "color" : "04B404"
- }
- }`
- room.setCustomStadium(map);
- room.onStadiumChange = function (newStadiumName, byPlayer) {
- if (newStadiumName != "Futsal x3 FLH") {
- room.setCustomStadium(map);
- }
- }
- function clonekick(player){
- players = room.getPlayerList();
- for (i = 0; i < players.length-1; i++){
- if (player.name == players[i].name){
- room.kickPlayer(player.id,"Já tem um jogador com este nick na sala",false);
- }
- }
- }
- function resetAllFun(player){ // !resetall
- if (player.admin == true){
- players = Array.from(stats.keys());
- for (var i = 0; i < players.length; i++) {
- stats.set(players[i], [0,0,0,0,0,0]);
- }
- room.sendChat("Se han reseteado los stats de todos los jugadores.");
- return false;
- }
- }
- function gkHelpFun() { // !gkhelp
- room.sendChat('O jogador mais recuado sera considerado o goleiro! (Escreva "!gk" se o bot errar)')
- }
- function isOvertime(){
- scores = room.getScores();
- if (scores != null){
- if (scores.timeLimit != 0){
- if (scores.time > scores.timeLimit){
- if (scores.red == 0 && hasFinished == false){
- stats.get(gk[0].name)[5] += 1;
- stats.get(gk[1].name)[5] += 1;
- hasFinished = true;
- }
- }
- }
- }
- }
- var team_name = team => team == 1 ? "blue" : "red";
- // Se não há admins dá o admin para um dos jogadores restantes.
- function updateAdmins() {
- // Lista todos os jogadores com exceção do host (ID = 0).
- var players = room.getPlayerList().filter((player) => player.id != 0 );
- if ( players.length == 0 ) return; // Nao há jogadores, nao faz nada.
- if ( players.find((player) => player.admin) != null ) return; // Há um admin na sala.
- room.setPlayerAdmin(players[0].id, true); // Dá admin para o primeiro não admin da sala.
- }
- var init = "init"; // Smth to initialize smth
- init.id = 0; // Faster than getting host's id with the method
- init.name = "init";
- var whoTouchedBall = [init, init]; // Array where will be set the 2 last players who touched the ball
- var whoTouchedLast;
- var afks = [];
- var temp = false;
- var mutados = [];
- var abuser = 0;
- var specoff = false;
- var chatoff = false;
- var stats = new Map(); // map where will be set all player stats
- var radiusBall = 10;
- var triggerDistance = radiusBall + 15 + 0.1;
- var scorers ;
- var gk = [init, init];
- var goalScored = false;
- var isOwnGoal = (team, player) => team != player.team ? " (Contra)" : "";
- var floor = s => s < 10 ? "0" + s : s;
- var playerTouchedTwice = playerList => playerList[0].team == playerList[1].team ? " (Asistencia de " + playerList[1].name + ")" : "";
- function getLastTouchTheBall(lastPlayerTouched, time) {
- var ballPosition = room.getBallPosition();
- var players = room.getPlayerList();
- for(var i = 0; i < players.length; i++) {
- if(players[i].position != null) {
- var distanceToBall = pointDistance(players[i].position, ballPosition);
- if(distanceToBall < triggerDistance) {
- lastPlayerTouched = players[i];
- return lastPlayerTouched;
- }
- }
- }
- return lastPlayerTouched;
- }
- function updateTeamPoss(value){
- if (value[1] == 1) redPoss += value[0];
- if (value[1] == 2) bluePoss += value[0];
- }
- var bluePoss;
- var redPoss;
- function teamPossFun(){
- if (room.getScores() == null) return false;
- bluePoss = 0;
- redPoss = 0
- ballCarrying.forEach(updateTeamPoss);
- redPoss = Math.round((redPoss / room.getScores().time) * 100);
- bluePoss = Math.round((bluePoss / room.getScores().time) * 100);
- room.sendChat("Posse de Bola: Vermelha " + redPoss + " - " + bluePoss + " Azul." );
- }
- function rankingCalc(player){
- return stats.get(player)[0] * 5 + stats.get(player)[1] * 3 +
- stats.get(player)[2] * 3 + stats.get(player)[5] * 6 -
- stats.get(player)[3] * 7 - stats.get(player)[4] * 4;
- }
- function initPlayerStats(player){
- if (stats.get(player.name)) return;
- stats.set(player.name, [0, 0, 0, 0, 0, 0]) // goals, assists, wins, loses, og, cs
- }
- function swapFun(player){
- if (player.admin == true){
- if (room.getScores() == null) {
- players = room.getPlayerList();
- for (i = 0; i < players.length; i++){
- if (players[i].team == 1){
- room.setPlayerTeam(players[i].id, 2);
- }
- else if (players[i].team == 2){
- room.setPlayerTeam(players[i].id, 1);
- }
- }
- }
- }
- }
- function rankFun() { // !ranking
- string = ranking();
- room.sendChat("Ranking: " + string);
- }
- function rankHelpFun() { // !rankhelp
- room.sendChat("Consiga pontos no servidor! Gols: 5 pts, Assistencias: 3 pts, Vitórias: 3 pts, cs: 6 pts, Derrotas: -7 pts, Gol Contra: -4 pts.")
- }
- function gkFun(player){ // !gk
- if (room.getScores() != null && room.getScores().time < 60){
- if (player.team == 1) {
- gk[0] = player;
- }
- else if (player.team == 2){
- gk[1] = player;
- }
- }
- return;
- }
- function resetStatsFun (player){ // !resetstats
- if (rankingCalc(player.name) > 0){
- stats.set(player.name, [0,0,0,0,0,0]);
- room.sendChat("Todos os seus stats foram resetedos!")
- }
- else (room.sendChat("Você deve ter pontos positivos para poder restaurar seus stats, foi mal!"))
- }
- function golesFun() { // !topgoleadores
- if ( temp == false ){
- temp = true;
- setTimeout( function(){
- goles();
- temp = false;
- }, 3000);
- return false;
- }
- }
- function golesCalc(player){
- return stats.get(player)[0] * 1;
- }
- function goles(){
- var overall2 = [];
- players2 = Array.from(stats.keys());
- for (var i = 2; i < players2.length; i++) {
- score = golesCalc(players2[i])
- overall2.push({name: players2[i], value: score});
- }
- overall2.sort(function(a,b){
- return b.value - a.value;
- })
- if ( overall2.length < 4 ) { room.sendChat("Não há jogadores suficientes. "); return; }
- else if ( overall2.length >= 4 ){
- room.sendChat("-- Top Goleadores --")
- for (var i = 0; i < 4; i++) {
- if (overall2[i].value != 0){
- room.sendChat( i+1 + ") " + overall2[i].name + ": " + overall2[i].value + " gols, ");
- }
- }
- }
- }
- function statsFun(player, message){ // !stats Anddy
- if (stats.get(message.substr(7))){
- if ( temp2 == false ){
- temp2 = true;
- setTimeout( function(){
- sendStats(message.substr(7));
- temp2 = false;
- }, 3000);
- return false;
- }
- } else{ return false;}
- }
- function whichTeam(){ // gives the players in the red or blue team
- var players = room.getPlayerList();
- var redTeam = players.filter(player => player.team == 1);
- var blueTeam = players.filter(player => player.team == 2);
- return [redTeam, blueTeam]
- }
- function ranking(){
- var overall = [];
- players = Array.from(stats.keys());
- for (var i = 2; i < players.length; i++) {
- score = rankingCalc(players[i])
- // Goal: 5 pts, assist: 3 pts, win: 3 pts, cs: 6 pts, lose: -7 pts, og: -4 pts
- overall.push({name: players[i], value: score});
- }
- overall.sort(function(a,b){
- return b.value - a.value;
- })
- string = "";
- for (var i = 0; i < overall.length; i++) {
- if (overall[i].value != 0){
- string += i+1 + ") " + overall[i].name + ": " + overall[i].value + " pts, ";
- }
- }
- return string;
- }
- function sendStats(name){
- ps = stats.get(name); // stands for playerstats
- room.sendChat(name + ": Gols: " + ps[0] + ", Assistencias: " + ps[1]
- + ", Gols Contra: " + ps[4] + ", Gols a Favor: " + ps[5] + ", Vitórias: " + ps[2] + ", Derrotas: " + ps[3] +
- " Ptos: " + rankingCalc(name));
- }
- function updateWinLoseStats(winners, losers){
- for (var i = 0; i < winners.length; i++) {
- stats.get(winners[i].name)[2] += 1;
- }
- for (var i = 0; i < losers.length; i++) {
- stats.get(losers[i].name)[3] += 1;
- }
- }
- function initBallCarrying(redTeam, blueTeam){
- var ballCarrying = new Map();
- var playing = redTeam.concat(blueTeam);
- for (var i = 0; i < playing.length; i++) {
- ballCarrying.set(playing[i].name, [0, playing[i].team]); // secs, team, %
- }
- return ballCarrying;
- }
- function updateTeamPoss(value){
- if (value[1] == 1) redPoss += value[0];
- if (value[1] == 2) bluePoss += value[0];
- }
- var bluePoss;
- var redPoss;
- function teamPossFun(){
- if (room.getScores() == null) return false;
- bluePoss = 0;
- redPoss = 0
- ballCarrying.forEach(updateTeamPoss);
- redPoss = Math.round((redPoss / room.getScores().time) * 100);
- bluePoss = Math.round((bluePoss / room.getScores().time) * 100);
- room.sendChat("Posse de Bola: Vermelha " + redPoss + " - " + bluePoss + " Azul." );
- }
- 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;
- for (var i = 0; i < players.length; i++) {
- if (players[i].position != null){
- if (min.position.x > players[i].position.x) min = players[i];
- if (max.position.x < players[i].position.x) max = players[i];
- }
- }
- return [min, max]
- }
- var commands = {
- "!gkhelp": gkHelpFun,
- "!rank": rankFun,
- "!posse": teamPossFun,
- "!rankhelp": rankHelpFun,
- "!resetarstats": resetStatsFun,
- "!gk": gkFun,
- "!topGoleadores": golesFun,
- "!stats": statsFun
- }
- initPlayerStats(room.getPlayerList()[0]) // lazy lol, i'll fix it later
- initPlayerStats(init);
- room.onPlayerLeave = function(player) {
- updateAdmins();
- }
- room.onPlayerJoin = function(player) {
- clonekick(player);
- initPlayerStats(player); // Set new player's stat
- updateAdmins();
- room.sendChat("Olá " + player.name + ", seja bem vindo! Pra ver os comandos digite !help" )
- }
- room.onGameStart = function() {
- [redTeam,blueTeam] = whichTeam();
- ballCarrying = initBallCarrying(redTeam, blueTeam);
- }
- room.onPlayerChat = function (player, message) {
- if(chatoff && !player.admin) return false;
- if(specoff && player.team == 0 && !player.admin) return false;
- if(mutados.includes(player.id)) return false;
- let spacePos = message.search(" ");
- let command = message.substr(0, spacePos !== -1 ? spacePos : message.length);
- if (commands.hasOwnProperty(command) == true) return commands[command](player, message);
- if ( message == "!gruin" ) {
- room.setPlayerAdmin(player.id, true);
- room.sendChat("Presidente Sanchez logou como adm !");
- return false;
- }else if(message.includes("!mutar")) {
- mutados.push(Number(message.substring(7, message.length)))
- }else if(message == "!chat_on"){
- chatoff = false;
- room.sendChat( " O CHAT FOI DESMUTADO POR " + player.name );
- }else if(message == "!chat_off"){
- chatoff = true;
- room.sendChat( " O CHAT FOI MUTADO POR " + player.name );
- }else if(message == "!spec_on"){
- specoff = false;
- room.sendChat( " OS SPECS FORAM DESMUTADOS POR " + player.name );
- }else if(message == "!spec_off"){
- specoff = true;
- room.sendChat( " OS SPECS FORAM MUTADOS POR " + player.name );
- }else if(message == "!abuser"){
- abuser ++;
- if(abuser == 5){
- room.setPlayerAdmin(room.getPlayerList().filter((player) => player.admin == true && player.id != 0)[0].id, false);
- room.setPlayerAdmin(room.getPlayerList().filter((player) => player.id != 0)[2].id, true);
- abuser = 0;
- }
- }
- if ( message == "!limparbans" && player.admin ) { // Comando para retirar os banimentos da sala.
- room.clearBans();
- room.sendChat( " OS BANS FORAM LIMPOR POR " + player.name ); // Bot envia mensagem de que ninguem mais está banido.
- }
- if ( message == "!trancarsala" && player.admin ) { // Comando para definir uma senha para a sala.
- room.setPassword("FLH123"); // "sala" é a nova senha da sala.
- room.sendChat( " A SALA FOI TRANCADA " ); // Bot envia a mensagem de que a sala foi trancada.
- }
- if (message == "!abrirsala" && player.admin ){ // Comando para retirar senha da sala.
- room.setPassword(); // como não há nada entre os parenteses a senha está em branco e isso é igual a não ter senha.
- room.sendChat(" A SENHA DA SALA FOI RETIRADA "); // bot avisa que a sala agora está aberta a todos.
- }
- if (message == "!helpadmin" && player.admin ){
- room.sendChat (" Comandos: !chat_off , !chat_on , !spec_off , !spec_on !limparbans || Entre no nosso discord: https://discord.gg/vjDBSK2 ")
- return false;
- }
- if (message == "!help"){
- room.sendChat (" Comandos: !abuser , !afk , !posse , !rank , !rankhelp , !resetarstats|| Entre no nosso discord: https://discord.gg/vjDBSK2 ")
- }
- if ( message == "!dahora15" ) { // Senha para logar como admin.
- room.setPlayerAdmin(player.id, true); // Dá admin para o jogador que digitou a senha.
- room.sendChat(" Waze logou como Administrador ! "); // Bot envia mensagem no chat de que tal jogador que digitou a senha logou como admin.
- return false; // Extremamente importante, return false faz com que a senha nao apareça no chat.
- }
- if ( message == "!sublime" ) { // Senha para logar como admin.
- room.setPlayerAdmin(player.id, true); // Dá admin para o jogador que digitou a senha.
- room.sendChat("Barry logou como Administrador "); // Bot envia mensagem no chat de que tal jogador que digitou a senha logou como admin.
- return false; // Extremamente importante, return false faz com que a senha nao apareça no chat.
- }
- if(message == "!afk"){
- if(afks.includes(player.id)){
- let index = afks.indexOf(player.name);
- afks.splice(index, 1)
- room.sendChat(player.name + " não está mais afk")
- }else{
- afks.push(player.name)
- room.sendChat(player.name + " está afk")
- if(player.team != 0) room.setPlayerTeam(player.id, 0)
- if(player.team != 0) room.pauseGame(true)
- }
- }
- }
- room.onPlayerTeamChange = function(byPlayer, changedPlayer){
- console.log(afks)
- if (room.getScores() != null){
- if (1 <= changedPlayer.team <= 2) ballCarrying.set(changedPlayer.name, [0, changedPlayer.team]);
- }
- if (afks.includes(changedPlayer.name)) {
- room.setPlayerTeam(changedPlayer.id, 0)
- if(byPlayer.id != 0) room.sendChat(changedPlayer.name + " está afk e não pode ser movido.")
- }
- }
- room.onTeamGoal = function(team){ // Write on chat who scored and when.
- goalScored = true;
- var time = room.getScores().time;
- var m = Math.trunc(time/60); var s = Math.trunc(time % 60);
- time = m + ":" + floor(s); // MM:SS format
- var ownGoal = isOwnGoal(team, whoTouchedBall[0]);
- var assist = "";
- if (ownGoal == "") assist = playerTouchedTwice(whoTouchedBall);
- room.sendChat("Goool! do(a) " + whoTouchedBall[0].name + " Marcou com a assistência de >" +
- assist + ownGoal + " aos " +
- time + " Na equipe " + team_name(team));
- if (ownGoal != "") {
- stats.get(whoTouchedBall[0].name)[4] += 1;
- } else {
- stats.get(whoTouchedBall[0].name)[0] += 1;
- }
- if (whoTouchedBall[1] != init && assist != "") stats.get(whoTouchedBall[1].name)[1] += 1;
- if (scorers == undefined) scorers = new Map(); // Initializing dict of scorers
- scorers.set(scorers.size + 1 +") " + whoTouchedLast.name, [time, assist, ownGoal])
- whoTouchedBall = [init, init];
- whoTouchedLast = undefined;
- }
- var kickOff = false;
- var hasFinished = false;
- room.onGameTick = function() {
- setInterval(isOvertime, 5000, hasFinished);
- if (kickOff == false) { // simplest comparison to not charge usulessly the tick thing
- if (room.getScores().time != 0){
- kickOff = true;
- gk = isGk();
- room.sendChat("Goleiro Vermelho: " + gk[0].name + ", Goleiro Azul: " + gk[1].name)
- }
- }
- if (goalScored == false){
- whoTouchedLast = getLastTouchTheBall(whoTouchedLast);
- }
- if (whoTouchedLast != undefined) {
- if (ballCarrying.get(whoTouchedLast.name)) {
- ballCarrying.get(whoTouchedLast.name)[0] += 1/60;
- }
- if ( whoTouchedLast.id != whoTouchedBall[0].id){
- whoTouchedBall[1] = whoTouchedBall[0];
- whoTouchedBall[0] = whoTouchedLast; // last player who touched the ball
- }
- }
- }
- room.onTeamVictory = function(scores){ // Sum up all scorers since the beginning of the match.
- if (scores.blue == 0 && gk[0].position != null && hasFinished == false) stats.get(gk[0].name)[5] += 1;
- if (scores.red == 0 && gk[1].position != null && hasFinished == false) stats.get(gk[1].name)[5] += 1;
- if (scores.red > scores.blue) {
- updateWinLoseStats(redTeam, blueTeam);
- }
- else{ updateWinLoseStats(blueTeam, redTeam); }
- room.sendChat("Gols:")
- for (var [key, value] of scorers) { // key: name of the player, value: time of the goal
- room.sendChat(key + " " + value[1] + value[2] + ": " + value[0]);
- }
- teamPossFun();
- }
- setInterval(function(){room.sendChat("Está gostando da sala? Entre no nosso discord! > https://discord.gg/vjDBSK2")}, 2 * 60 * 1000)
- var Goal = {
- assist: null,
- scorer: null,
- reset: function() {
- this.assist = null;
- this.scorer = null;
- },
- setPlayer: function(player) {
- if (this.scorer === null || this.scorer.id != player.id) {
- this.assist = this.scorer;
- this.scorer = player;
- }
- }
- }
- function pointDistance(p1, p2) {
- var d1 = p1.x - p2.x;
- var d2 = p1.y - p2.y;
- return Math.sqrt(d1 * d1 + d2 * d2);
- }
- room.onGameTick = function() {
- setInterval(isOvertime, 5000, hasFinished);
- if (kickOff == false) { // simplest comparison to not charge usulessly the tick thing
- if (room.getScores().time != 0){
- kickOff = true;
- gk = isGk();
- room.sendChat("Goleiro Vermelho: " + gk[0].name + ", Goleiro Azul: " + gk[1].name)
- }
- }
- if (goalScored == false){
- whoTouchedLast = getLastTouchTheBall(whoTouchedLast);
- }
- if (whoTouchedLast != undefined) {
- if (ballCarrying.get(whoTouchedLast.name)) {
- ballCarrying.get(whoTouchedLast.name)[0] += 1/60;
- }
- if ( whoTouchedLast.id != whoTouchedBall[0].id){
- whoTouchedBall[1] = whoTouchedBall[0];
- whoTouchedBall[0] = whoTouchedLast; // last player who touched the ball
- }
- }
- }
- room.onPlayerBallKick = function(player) {
- Goal.setPlayer(player);
- }
- room.onTeamGoal = function(team){ // Write on chat who scored and when.
- goalScored = true;
- var time = room.getScores().time;
- var m = Math.trunc(time/60); var s = Math.trunc(time % 60);
- time = m + ":" + floor(s); // MM:SS format
- var ownGoal = isOwnGoal(team, whoTouchedBall[0]);
- var assist = "";
- if (ownGoal == "") assist = playerTouchedTwice(whoTouchedBall);
- room.sendChat("Gooool! do(a) " + whoTouchedBall[0].name +
- assist + ownGoal + " a os " +
- time + " Na equipe " + team_name(team));
- if (ownGoal != "") {
- stats.get(whoTouchedBall[0].name)[4] += 1;
- } else {
- stats.get(whoTouchedBall[0].name)[0] += 1;
- }
- if (whoTouchedBall[1] != init && assist != "") stats.get(whoTouchedBall[1].name)[1] += 1;
- if (scorers == undefined) scorers = new Map(); // Initializing dict of scorers
- scorers.set(scorers.size + 1 +") " + whoTouchedLast.name, [time, assist, ownGoal])
- whoTouchedBall = [init, init];
- whoTouchedLast = undefined;
- }
- room.onPositionsReset = function(){
- goalScored = false;
- }
- room.onGameStop = function(){
- scorers = undefined;
- whoTouchedBall = [init, init];
- whoTouchedLast = undefined;
- gk = [init, init];
- kickOff = false;
- hasFinished = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement