haxball / haxball-issues

115 stars 43 forks source link

Help! Headless Host #338

Closed GrandesLigasHaxBall closed 6 years ago

GrandesLigasHaxBall commented 6 years ago

@Raamyy @basro I want to create a "Headless Host" with the following map:

{

"name" : "Real Soccer V4 Kuma Dope By GLH",

"width" : 1700,

"height" : 610,

"spawnDistance" : 300,

"bg" : { "type" : "grass", "width" : 1150, "height" : 550, "kickOffRadius" : 180, "cornerRadius" : 0 },

"playerPhysics" : {
    "bCoef" : 0.5,
    "invMass" : 0.5,
    "damping" : 0.96,
    "acceleration" : 0.12,
    "kickingAcceleration" : 0.07,
    "kickingDamping" : 0.96,
    "kickStrength" : 5.65

},

"ballPhysics" : {
    "radius" : 10,
    "bCoef" : 0.5,
    "invMass" : 1,
    "damping" : 0.99,
    "color" : "FFFFFF",
    "cMask" : [ "all"
    ],
    "cGroup" : [ "ball"
    ]

},

"vertexes" : [
    /* 0 */ { "x" : 0, "y" : 660, "trait" : "kickOffBarrier" },
    /* 1 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 2 */ { "x" : 0, "y" : -180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 3 */ { "x" : 0, "y" : -660, "trait" : "kickOffBarrier" },

    /* 4 */ { "x" : 1150, "y" : 250, "trait" : "line" },
    /* 5 */ { "x" : 840, "y" : 250, "trait" : "line" },
    /* 6 */ { "x" : 1150, "y" : -250, "trait" : "line" },
    /* 7 */ { "x" : 840, "y" : -250, "trait" : "line" },
    /* 8 */ { "x" : 1150, "y" : 150, "trait" : "line" },
    /* 9 */ { "x" : 1030, "y" : 150, "trait" : "line" },
    /* 10 */ { "x" : 1150, "y" : -150, "trait" : "line" },
    /* 11 */ { "x" : 1030, "y" : -150, "trait" : "line" },
    /* 12 */ { "x" : 840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 13 */ { "x" : 840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 14 */ { "x" : -1150, "y" : -250, "trait" : "line" },
    /* 15 */ { "x" : -840, "y" : -250, "trait" : "line" },
    /* 16 */ { "x" : -1150, "y" : 250, "trait" : "line" },
    /* 17 */ { "x" : -840, "y" : 250, "trait" : "line" },
    /* 18 */ { "x" : -1150, "y" : -150, "trait" : "line" },
    /* 19 */ { "x" : -1030, "y" : -150, "trait" : "line" },
    /* 20 */ { "x" : -1150, "y" : 150, "trait" : "line" },
    /* 21 */ { "x" : -1030, "y" : 150, "trait" : "line" },
    /* 22 */ { "x" : -840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 23 */ { "x" : -840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 24 */ { "x" : 935, "y" : 4, "trait" : "line" },
    /* 25 */ { "x" : 935, "y" : -4, "trait" : "line" },
    /* 26 */ { "x" : -935, "y" : 4, "trait" : "line" },
    /* 27 */ { "x" : -935, "y" : -4, "trait" : "line" },
    /* 28 */ { "x" : -1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 29 */ { "x" : -1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 30 */ { "x" : -1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 31 */ { "x" : -1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 32 */ { "x" : 1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 33 */ { "x" : 1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 34 */ { "x" : 1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 35 */ { "x" : 1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0 },
    /* 36 */ { "x" : -1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 37 */ { "x" : -1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 38 */ { "x" : -1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 39 */ { "x" : -1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 40 */ { "x" : 1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 41 */ { "x" : 1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 42 */ { "x" : 1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 43 */ { "x" : 1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 44 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 45 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 46 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 47 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 48 */ { "x" : -1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 49 */ { "x" : -1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 50 */ { "x" : 1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 51 */ { "x" : 1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 52 */ { "x" : -1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 53 */ { "x" : -1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 54 */ { "x" : 1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 55 */ { "x" : 1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 56 */ { "x" : 1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 57 */ { "x" : 1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 58 */ { "x" : 1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 59 */ { "x" : 1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 60 */ { "x" : -1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 61 */ { "x" : -1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 62 */ { "x" : -1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 63 */ { "x" : -1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },

    /* 64 */ { "x" : -1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 65 */ { "x" : -1177, "y" : -150, "cMask" : ["ball" ] },

    /* 66 */ { "x" : -1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 67 */ { "x" : -1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },

    /* 68 */ { "x" : -1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 69 */ { "x" : -1177, "y" : 150, "cMask" : ["ball" ] },
    /* 70 */ { "x" : 1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 71 */ { "x" : 1177, "y" : -150, "cMask" : ["ball" ] },

    /* 72 */ { "x" : 1170, "y" : -150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 73 */ { "x" : 1170, "y" : -250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 74 */ { "x" : 1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 75 */ { "x" : 1177, "y" : 150, "cMask" : ["ball" ] },

    /* 76 */ { "x" : 1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 77 */ { "x" : 1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 78 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 79 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 80 */ { "x" : 0, "y" : -180, "cMask" : ["red","blue" ], "cGroup" : ["redKO","blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 81 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 82 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 83 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 84 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 85 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },

    /* 86 */ { "x" : -820, "y" : -550, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 87 */ { "x" : -1150, "y" : -260, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 88 */ { "x" : -1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 89 */ { "x" : -820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 90 */ { "x" : 820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 91 */ { "x" : 1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 92 */ { "x" : 820, "y" : -550, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 93 */ { "x" : 1150, "y" : -260, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 94 */ { "x" : 1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 95 */ { "x" : -1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 96 */ { "x" : 1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 97 */ { "x" : -1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 98 */ { "x" : -1150, "y" : -550, "trait" : "line" },
    /* 99 */ { "x" : -1150, "y" : 550, "trait" : "line" },
    /* 100 */ { "x" : 1150, "y" : 550, "trait" : "line" },
    /* 101 */ { "x" : 1150, "y" : -550, "trait" : "line" },
    /* 102 */ { "x" : -1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 103 */ { "x" : -1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 104 */ { "x" : 1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 105 */ { "x" : 1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 106 */ { "x" : -22.95068610634644, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 107 */ { "x" : -14.970411663807909, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 108 */ { "x" : -27.738850771869693, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 109 */ { "x" : -2.2019725557461243, "y" : -598.3644939965695, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 110 */ { "x" : -2.2019725557461243, "y" : -568.0394511149228, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 111 */ { "x" : 11.364493996569536, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 112 */ { "x" : 25.728987993138844, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 113 */ { "x" : 25.728987993138844, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 114 */ { "x" : 25.728987993138844, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 115 */ { "x" : 41.68953687821613, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 116 */ { "x" : 41.68953687821613, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 117 */ { "x" : 41.68953687821613, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 118 */ { "x" : -22.95068610634644, "y" : -595.172384219554, "trait" : "line", "color" : "60764d" },
    /* 119 */ { "x" : -14.970411663807909, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 120 */ { "x" : -27.738850771869693, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 121 */ { "x" : -2.2019725557461243, "y" : -596.7684391080618, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 122 */ { "x" : -2.2019725557461243, "y" : -566.4433962264151, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 123 */ { "x" : 11.364493996569536, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 124 */ { "x" : 25.728987993138844, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 125 */ { "x" : 25.728987993138844, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 126 */ { "x" : 25.728987993138844, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 127 */ { "x" : 41.68953687821613, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 128 */ { "x" : 41.68953687821613, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 129 */ { "x" : 41.68953687821613, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 130 */ { "x" : -22.152658662092563, "y" : -599.1625214408233, "trait" : "line" },
    /* 131 */ { "x" : -14.172384219554033, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 132 */ { "x" : -26.940823327615817, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 133 */ { "x" : -1.4039451114922485, "y" : -600.758576329331, "trait" : "line", "curve" : 0 },
    /* 134 */ { "x" : -1.4039451114922485, "y" : -570.4335334476843, "trait" : "line", "curve" : 0 },
    /* 135 */ { "x" : 12.162521440823411, "y" : -570.4335334476843, "trait" : "line" },
    /* 136 */ { "x" : 26.52701543739272, "y" : -600.758576329331, "trait" : "line" },
    /* 137 */ { "x" : 26.52701543739272, "y" : -570.4335334476843, "trait" : "line" },
    /* 138 */ { "x" : 26.52701543739272, "y" : -585.5960548885078, "trait" : "line" },
    /* 139 */ { "x" : 42.48756432247001, "y" : -585.5960548885078, "trait" : "line" },
    /* 140 */ { "x" : 42.48756432247001, "y" : -600.758576329331, "trait" : "line" },
    /* 141 */ { "x" : 42.48756432247001, "y" : -570.4335334476843, "trait" : "line" },

    /* 142 */ { "x" : -1406, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 143 */ { "x" : -1306, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 144 */ { "x" : -1306, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 145 */ { "x" : -1406, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },

    /* 146 */ { "x" : -1404, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 147 */ { "x" : -1306, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 148 */ { "x" : -1306, "y" : 610, "trait" : "kickOffBarrier" },
    /* 149 */ { "x" : -1406, "y" : 610, "trait" : "kickOffBarrier" },

    /* 150 */ { "x" : -1346, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 151 */ { "x" : -1346, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 152 */ { "x" : -1351, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 153 */ { "x" : -1341, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 154 */ { "x" : -1351, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 155 */ { "x" : -1341, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 156 */ { "x" : -1396, "y" : -75, "bCoef" : 0, "cMask" : ["red" ] },
    /* 157 */ { "x" : -1396, "y" : 85, "bCoef" : 0, "cMask" : ["red" ] },
    /* 158 */ { "x" : 1401, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 159 */ { "x" : 1301, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 160 */ { "x" : 1301, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 161 */ { "x" : 1401, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },

    /* 162 */ { "x" : 1402, "y" : -610, "trait" : "kickOffBarrier" },
    /* 163 */ { "x" : 1301, "y" : -610, "trait" : "kickOffBarrier" },
    /* 164 */ { "x" : 1301, "y" : 610, "trait" : "kickOffBarrier" },
    /* 165 */ { "x" : 1402, "y" : 610, "trait" : "kickOffBarrier" },

    /* 166 */ { "x" : 1341, "y" : -89, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 167 */ { "x" : 1341, "y" : 71, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 168 */ { "x" : 1346, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 169 */ { "x" : 1336, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 170 */ { "x" : 1346, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 171 */ { "x" : 1336, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 172 */ { "x" : 1391, "y" : -89, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 173 */ { "x" : 1391, "y" : 71, "bCoef" : 0, "cMask" : ["blue" ] }

],

"segments" : [
    { "v0" : 37, "v1" : 39, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetleft", "x" : -1210 },

    { "v0" : 41, "v1" : 43, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetright" },

    { "v0" : 0, "v1" : 1, "trait" : "kickOffBarrier" },
    { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },

    { "v0" : 4, "v1" : 5, "trait" : "line", "y" : 250 },
    { "v0" : 5, "v1" : 7, "trait" : "line", "x" : 840 },
    { "v0" : 6, "v1" : 7, "trait" : "line", "y" : -250 },
    { "v0" : 8, "v1" : 9, "trait" : "line", "y" : 150 },
    { "v0" : 9, "v1" : 11, "trait" : "line", "x" : 1030 },
    { "v0" : 10, "v1" : 11, "trait" : "line", "y" : -150 },
    { "v0" : 12, "v1" : 13, "curve" : -130, "trait" : "line", "x" : 840 },
    { "v0" : 14, "v1" : 15, "trait" : "line", "y" : -250 },
    { "v0" : 15, "v1" : 17, "trait" : "line", "x" : -840 },
    { "v0" : 16, "v1" : 17, "trait" : "line", "y" : 250 },
    { "v0" : 18, "v1" : 19, "trait" : "line", "y" : -150 },
    { "v0" : 19, "v1" : 21, "trait" : "line", "x" : -1030 },
    { "v0" : 20, "v1" : 21, "trait" : "line", "y" : 150 },
    { "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" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 30, "v1" : 31, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 32, "v1" : 33, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 34, "v1" : 35, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },

    { "v0" : 36, "v1" : 37, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 38, "v1" : 39, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 40, "v1" : 41, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 42, "v1" : 43, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },

    { "v0" : 44, "v1" : 45, "curve" : -180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 44, "v1" : 45, "curve" : -90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 48, "v1" : 49, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 50, "v1" : 51, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 52, "v1" : 53, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 54, "v1" : 55, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 56, "v1" : 57, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 58, "v1" : 59, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 60, "v1" : 61, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 62, "v1" : 63, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },

    { "v0" : 53, "v1" : 64, "vis" : true, "bCoef" : 0, "cMask" : ["ball" ] },
    { "v0" : 52, "v1" : 65, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 69, "v1" : 68, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 67, "v1" : 66, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 75, "v1" : 77, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 74, "v1" : 76, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 70, "v1" : 73, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 71, "v1" : 72, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },

    { "v0" : 78, "v1" : 79, "curve" : 180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 78, "v1" : 79, "curve" : -180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["redKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 82, "v1" : 81, "vis" : true, "color" : "C7E6BD", "bCoef" : 0.1, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },

    { "v0" : 86, "v1" : 87, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 88, "v1" : 89, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 90, "v1" : 91, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 92, "v1" : 93, "curve" : -90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 94, "v1" : 95, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 96, "v1" : 97, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "y" : 475 },
    { "v0" : 98, "v1" : 99, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 99, "v1" : 100, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 98, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 100, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 39, "v1" : 102, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 37, "v1" : 103, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 43, "v1" : 104, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 41, "v1" : 105, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 106, "v1" : 107, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 107, "v1" : 108, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 109, "v1" : 110, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 110, "v1" : 111, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 112, "v1" : 113, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 114, "v1" : 115, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 116, "v1" : 117, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 118, "v1" : 119, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 119, "v1" : 120, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 121, "v1" : 122, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 122, "v1" : 123, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 124, "v1" : 125, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 126, "v1" : 127, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 128, "v1" : 129, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 130, "v1" : 131, "curve" : -294.5055190310947, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 131, "v1" : 132, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 133, "v1" : 134, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 134, "v1" : 135, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 136, "v1" : 137, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 138, "v1" : 139, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 140, "v1" : 141, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },

    { "v0" : 142, "v1" : 143, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : -610, "_selected" : true },
    { "v0" : 143, "v1" : 144, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 144, "v1" : 145, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : 610 },

    { "v0" : 146, "v1" : 147, "trait" : "kickOffBarrier", "y" : -610, "_selected" : true },
    { "v0" : 148, "v1" : 149, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 150, "v1" : 151, "color" : "6666FF", "bCoef" : 1000000, "cMask" : ["blue" ] },
    { "v0" : 152, "v1" : 153, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 154, "v1" : 155, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 156, "v1" : 157, "vis" : false, "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 158, "v1" : 159, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : -610 },
    { "v0" : 159, "v1" : 160, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 160, "v1" : 161, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : 610 },

    { "v0" : 162, "v1" : 163, "trait" : "kickOffBarrier", "y" : -610 },
    { "v0" : 164, "v1" : 165, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 166, "v1" : 167, "color" : "FF6666", "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 168, "v1" : 169, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 170, "v1" : 171, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 172, "v1" : 173, "vis" : false, "bCoef" : 1000000, "cMask" : ["blue" ] }

],

"goals" : [
    { "p0" : [-1160,110 ], "p1" : [-1160,-110 ], "team" : "red" },
    { "p0" : [1160,110 ], "p1" : [1160,-110 ], "team" : "blue" }

],

"discs" : [
    { "pos" : [-1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [-1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },

    { "pos" : [-1250,150 ], "color" : "cacecd", "trait" : "stanchion" },
    { "pos" : [-1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : -1250, "y" : -150 },
    { "pos" : [1250,150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },
    { "pos" : [1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },

    { "pos" : [-1150,-550 ], "trait" : "cornerflag", "x" : -1150, "y" : -550 },
    { "pos" : [-1150,550 ], "trait" : "cornerflag", "x" : -1150, "y" : 550 },
    { "pos" : [1150,-550 ], "trait" : "cornerflag" },
    { "pos" : [1150,550 ], "trait" : "cornerflag" }

],

"planes" : [
    { "normal" : [0,1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },
    { "normal" : [0,-1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },

    { "normal" : [0,1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [0,-1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [-1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [1,0 ], "dist" : -1406, "bCoef" : 0 },
    { "normal" : [-1,0 ], "dist" : -1401, "bCoef" : 0 }

],

"traits" : {
    "ballArea" : { "vis" : false, "bCoef" : 0, "cMask" : ["ball" ] },
    "goalPost" : { "radius" : 5, "invMass" : 0, "bCoef" : 2 },
    "stanchion" : { "radius" : 3, "invMass" : 0, "bCoef" : 3, "cMask" : ["none" ] },
    "cornerflag" : { "radius" : 3, "invMass" : 0, "bCoef" : 0.5, "color" : "FFFF00", "cGroup" : [ ] },
    "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" },
    "tunnel" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "000000" },
    "advertising" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "333333" },
    "teambench" : { "vis" : true, "cMask" : [ ], "color" : "000000" },
    "manager" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "333333" },
    "physio" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "666666" },
    "redsubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "E56E56" },
    "bluesubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "5689E5" }

}

}

4vs4 Time: 5 and that the team that wins continue playing. And I would like that when someone enters, the bot will greet him.

Could someone tell me how to do it?

I have seen rooms where the bots administer. And the losing team is automatically placed spectator. And they also eliminate those who are AFK.

I would appreciate your help. Because although I see the explanations, it is still difficult for me to understand it

GrandesLigasHaxBall commented 6 years ago

@Wrathen Spanish version please!!

Raamyy commented 6 years ago
var realSoccer=`{
name" : "Real Soccer V4 Kuma Dope By GLH",

"width" : 1700,

"height" : 610,

"spawnDistance" : 300,

"bg" : { "type" : "grass", "width" : 1150, "height" : 550, "kickOffRadius" : 180, "cornerRadius" : 0 },

"playerPhysics" : {
    "bCoef" : 0.5,
    "invMass" : 0.5,
    "damping" : 0.96,
    "acceleration" : 0.12,
    "kickingAcceleration" : 0.07,
    "kickingDamping" : 0.96,
    "kickStrength" : 5.65

},

"ballPhysics" : {
    "radius" : 10,
    "bCoef" : 0.5,
    "invMass" : 1,
    "damping" : 0.99,
    "color" : "FFFFFF",
    "cMask" : [ "all"
    ],
    "cGroup" : [ "ball"
    ]

},

"vertexes" : [
    /* 0 */ { "x" : 0, "y" : 660, "trait" : "kickOffBarrier" },
    /* 1 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 2 */ { "x" : 0, "y" : -180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 3 */ { "x" : 0, "y" : -660, "trait" : "kickOffBarrier" },

    /* 4 */ { "x" : 1150, "y" : 250, "trait" : "line" },
    /* 5 */ { "x" : 840, "y" : 250, "trait" : "line" },
    /* 6 */ { "x" : 1150, "y" : -250, "trait" : "line" },
    /* 7 */ { "x" : 840, "y" : -250, "trait" : "line" },
    /* 8 */ { "x" : 1150, "y" : 150, "trait" : "line" },
    /* 9 */ { "x" : 1030, "y" : 150, "trait" : "line" },
    /* 10 */ { "x" : 1150, "y" : -150, "trait" : "line" },
    /* 11 */ { "x" : 1030, "y" : -150, "trait" : "line" },
    /* 12 */ { "x" : 840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 13 */ { "x" : 840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 14 */ { "x" : -1150, "y" : -250, "trait" : "line" },
    /* 15 */ { "x" : -840, "y" : -250, "trait" : "line" },
    /* 16 */ { "x" : -1150, "y" : 250, "trait" : "line" },
    /* 17 */ { "x" : -840, "y" : 250, "trait" : "line" },
    /* 18 */ { "x" : -1150, "y" : -150, "trait" : "line" },
    /* 19 */ { "x" : -1030, "y" : -150, "trait" : "line" },
    /* 20 */ { "x" : -1150, "y" : 150, "trait" : "line" },
    /* 21 */ { "x" : -1030, "y" : 150, "trait" : "line" },
    /* 22 */ { "x" : -840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 23 */ { "x" : -840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 24 */ { "x" : 935, "y" : 4, "trait" : "line" },
    /* 25 */ { "x" : 935, "y" : -4, "trait" : "line" },
    /* 26 */ { "x" : -935, "y" : 4, "trait" : "line" },
    /* 27 */ { "x" : -935, "y" : -4, "trait" : "line" },
    /* 28 */ { "x" : -1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 29 */ { "x" : -1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 30 */ { "x" : -1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 31 */ { "x" : -1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 32 */ { "x" : 1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 33 */ { "x" : 1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 34 */ { "x" : 1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 35 */ { "x" : 1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0 },
    /* 36 */ { "x" : -1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 37 */ { "x" : -1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 38 */ { "x" : -1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 39 */ { "x" : -1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 40 */ { "x" : 1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 41 */ { "x" : 1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 42 */ { "x" : 1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 43 */ { "x" : 1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 44 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 45 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 46 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 47 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 48 */ { "x" : -1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 49 */ { "x" : -1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 50 */ { "x" : 1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 51 */ { "x" : 1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 52 */ { "x" : -1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 53 */ { "x" : -1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 54 */ { "x" : 1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 55 */ { "x" : 1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 56 */ { "x" : 1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 57 */ { "x" : 1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 58 */ { "x" : 1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 59 */ { "x" : 1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 60 */ { "x" : -1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 61 */ { "x" : -1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 62 */ { "x" : -1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 63 */ { "x" : -1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },

    /* 64 */ { "x" : -1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 65 */ { "x" : -1177, "y" : -150, "cMask" : ["ball" ] },

    /* 66 */ { "x" : -1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 67 */ { "x" : -1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },

    /* 68 */ { "x" : -1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 69 */ { "x" : -1177, "y" : 150, "cMask" : ["ball" ] },
    /* 70 */ { "x" : 1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 71 */ { "x" : 1177, "y" : -150, "cMask" : ["ball" ] },

    /* 72 */ { "x" : 1170, "y" : -150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 73 */ { "x" : 1170, "y" : -250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 74 */ { "x" : 1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 75 */ { "x" : 1177, "y" : 150, "cMask" : ["ball" ] },

    /* 76 */ { "x" : 1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 77 */ { "x" : 1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 78 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 79 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 80 */ { "x" : 0, "y" : -180, "cMask" : ["red","blue" ], "cGroup" : ["redKO","blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 81 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 82 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 83 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 84 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 85 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },

    /* 86 */ { "x" : -820, "y" : -550, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 87 */ { "x" : -1150, "y" : -260, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 88 */ { "x" : -1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 89 */ { "x" : -820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 90 */ { "x" : 820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 91 */ { "x" : 1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 92 */ { "x" : 820, "y" : -550, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 93 */ { "x" : 1150, "y" : -260, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 94 */ { "x" : 1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 95 */ { "x" : -1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 96 */ { "x" : 1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 97 */ { "x" : -1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 98 */ { "x" : -1150, "y" : -550, "trait" : "line" },
    /* 99 */ { "x" : -1150, "y" : 550, "trait" : "line" },
    /* 100 */ { "x" : 1150, "y" : 550, "trait" : "line" },
    /* 101 */ { "x" : 1150, "y" : -550, "trait" : "line" },
    /* 102 */ { "x" : -1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 103 */ { "x" : -1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 104 */ { "x" : 1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 105 */ { "x" : 1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 106 */ { "x" : -22.95068610634644, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 107 */ { "x" : -14.970411663807909, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 108 */ { "x" : -27.738850771869693, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 109 */ { "x" : -2.2019725557461243, "y" : -598.3644939965695, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 110 */ { "x" : -2.2019725557461243, "y" : -568.0394511149228, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 111 */ { "x" : 11.364493996569536, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 112 */ { "x" : 25.728987993138844, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 113 */ { "x" : 25.728987993138844, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 114 */ { "x" : 25.728987993138844, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 115 */ { "x" : 41.68953687821613, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 116 */ { "x" : 41.68953687821613, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 117 */ { "x" : 41.68953687821613, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 118 */ { "x" : -22.95068610634644, "y" : -595.172384219554, "trait" : "line", "color" : "60764d" },
    /* 119 */ { "x" : -14.970411663807909, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 120 */ { "x" : -27.738850771869693, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 121 */ { "x" : -2.2019725557461243, "y" : -596.7684391080618, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 122 */ { "x" : -2.2019725557461243, "y" : -566.4433962264151, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 123 */ { "x" : 11.364493996569536, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 124 */ { "x" : 25.728987993138844, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 125 */ { "x" : 25.728987993138844, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 126 */ { "x" : 25.728987993138844, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 127 */ { "x" : 41.68953687821613, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 128 */ { "x" : 41.68953687821613, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 129 */ { "x" : 41.68953687821613, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 130 */ { "x" : -22.152658662092563, "y" : -599.1625214408233, "trait" : "line" },
    /* 131 */ { "x" : -14.172384219554033, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 132 */ { "x" : -26.940823327615817, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 133 */ { "x" : -1.4039451114922485, "y" : -600.758576329331, "trait" : "line", "curve" : 0 },
    /* 134 */ { "x" : -1.4039451114922485, "y" : -570.4335334476843, "trait" : "line", "curve" : 0 },
    /* 135 */ { "x" : 12.162521440823411, "y" : -570.4335334476843, "trait" : "line" },
    /* 136 */ { "x" : 26.52701543739272, "y" : -600.758576329331, "trait" : "line" },
    /* 137 */ { "x" : 26.52701543739272, "y" : -570.4335334476843, "trait" : "line" },
    /* 138 */ { "x" : 26.52701543739272, "y" : -585.5960548885078, "trait" : "line" },
    /* 139 */ { "x" : 42.48756432247001, "y" : -585.5960548885078, "trait" : "line" },
    /* 140 */ { "x" : 42.48756432247001, "y" : -600.758576329331, "trait" : "line" },
    /* 141 */ { "x" : 42.48756432247001, "y" : -570.4335334476843, "trait" : "line" },

    /* 142 */ { "x" : -1406, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 143 */ { "x" : -1306, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 144 */ { "x" : -1306, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 145 */ { "x" : -1406, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },

    /* 146 */ { "x" : -1404, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 147 */ { "x" : -1306, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 148 */ { "x" : -1306, "y" : 610, "trait" : "kickOffBarrier" },
    /* 149 */ { "x" : -1406, "y" : 610, "trait" : "kickOffBarrier" },

    /* 150 */ { "x" : -1346, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 151 */ { "x" : -1346, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 152 */ { "x" : -1351, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 153 */ { "x" : -1341, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 154 */ { "x" : -1351, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 155 */ { "x" : -1341, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 156 */ { "x" : -1396, "y" : -75, "bCoef" : 0, "cMask" : ["red" ] },
    /* 157 */ { "x" : -1396, "y" : 85, "bCoef" : 0, "cMask" : ["red" ] },
    /* 158 */ { "x" : 1401, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 159 */ { "x" : 1301, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 160 */ { "x" : 1301, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 161 */ { "x" : 1401, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },

    /* 162 */ { "x" : 1402, "y" : -610, "trait" : "kickOffBarrier" },
    /* 163 */ { "x" : 1301, "y" : -610, "trait" : "kickOffBarrier" },
    /* 164 */ { "x" : 1301, "y" : 610, "trait" : "kickOffBarrier" },
    /* 165 */ { "x" : 1402, "y" : 610, "trait" : "kickOffBarrier" },

    /* 166 */ { "x" : 1341, "y" : -89, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 167 */ { "x" : 1341, "y" : 71, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 168 */ { "x" : 1346, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 169 */ { "x" : 1336, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 170 */ { "x" : 1346, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 171 */ { "x" : 1336, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 172 */ { "x" : 1391, "y" : -89, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 173 */ { "x" : 1391, "y" : 71, "bCoef" : 0, "cMask" : ["blue" ] }

],

"segments" : [
    { "v0" : 37, "v1" : 39, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetleft", "x" : -1210 },

    { "v0" : 41, "v1" : 43, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetright" },

    { "v0" : 0, "v1" : 1, "trait" : "kickOffBarrier" },
    { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },

    { "v0" : 4, "v1" : 5, "trait" : "line", "y" : 250 },
    { "v0" : 5, "v1" : 7, "trait" : "line", "x" : 840 },
    { "v0" : 6, "v1" : 7, "trait" : "line", "y" : -250 },
    { "v0" : 8, "v1" : 9, "trait" : "line", "y" : 150 },
    { "v0" : 9, "v1" : 11, "trait" : "line", "x" : 1030 },
    { "v0" : 10, "v1" : 11, "trait" : "line", "y" : -150 },
    { "v0" : 12, "v1" : 13, "curve" : -130, "trait" : "line", "x" : 840 },
    { "v0" : 14, "v1" : 15, "trait" : "line", "y" : -250 },
    { "v0" : 15, "v1" : 17, "trait" : "line", "x" : -840 },
    { "v0" : 16, "v1" : 17, "trait" : "line", "y" : 250 },
    { "v0" : 18, "v1" : 19, "trait" : "line", "y" : -150 },
    { "v0" : 19, "v1" : 21, "trait" : "line", "x" : -1030 },
    { "v0" : 20, "v1" : 21, "trait" : "line", "y" : 150 },
    { "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" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 30, "v1" : 31, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 32, "v1" : 33, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 34, "v1" : 35, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },

    { "v0" : 36, "v1" : 37, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 38, "v1" : 39, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 40, "v1" : 41, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 42, "v1" : 43, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },

    { "v0" : 44, "v1" : 45, "curve" : -180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 44, "v1" : 45, "curve" : -90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 48, "v1" : 49, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 50, "v1" : 51, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 52, "v1" : 53, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 54, "v1" : 55, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 56, "v1" : 57, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 58, "v1" : 59, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 60, "v1" : 61, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 62, "v1" : 63, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },

    { "v0" : 53, "v1" : 64, "vis" : true, "bCoef" : 0, "cMask" : ["ball" ] },
    { "v0" : 52, "v1" : 65, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 69, "v1" : 68, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 67, "v1" : 66, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 75, "v1" : 77, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 74, "v1" : 76, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 70, "v1" : 73, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 71, "v1" : 72, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },

    { "v0" : 78, "v1" : 79, "curve" : 180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 78, "v1" : 79, "curve" : -180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["redKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 82, "v1" : 81, "vis" : true, "color" : "C7E6BD", "bCoef" : 0.1, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },

    { "v0" : 86, "v1" : 87, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 88, "v1" : 89, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 90, "v1" : 91, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 92, "v1" : 93, "curve" : -90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 94, "v1" : 95, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 96, "v1" : 97, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "y" : 475 },
    { "v0" : 98, "v1" : 99, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 99, "v1" : 100, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 98, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 100, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 39, "v1" : 102, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 37, "v1" : 103, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 43, "v1" : 104, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 41, "v1" : 105, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 106, "v1" : 107, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 107, "v1" : 108, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 109, "v1" : 110, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 110, "v1" : 111, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 112, "v1" : 113, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 114, "v1" : 115, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 116, "v1" : 117, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 118, "v1" : 119, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 119, "v1" : 120, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 121, "v1" : 122, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 122, "v1" : 123, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 124, "v1" : 125, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 126, "v1" : 127, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 128, "v1" : 129, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 130, "v1" : 131, "curve" : -294.5055190310947, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 131, "v1" : 132, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 133, "v1" : 134, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 134, "v1" : 135, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 136, "v1" : 137, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 138, "v1" : 139, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 140, "v1" : 141, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },

    { "v0" : 142, "v1" : 143, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : -610, "_selected" : true },
    { "v0" : 143, "v1" : 144, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 144, "v1" : 145, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : 610 },

    { "v0" : 146, "v1" : 147, "trait" : "kickOffBarrier", "y" : -610, "_selected" : true },
    { "v0" : 148, "v1" : 149, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 150, "v1" : 151, "color" : "6666FF", "bCoef" : 1000000, "cMask" : ["blue" ] },
    { "v0" : 152, "v1" : 153, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 154, "v1" : 155, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 156, "v1" : 157, "vis" : false, "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 158, "v1" : 159, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : -610 },
    { "v0" : 159, "v1" : 160, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 160, "v1" : 161, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : 610 },

    { "v0" : 162, "v1" : 163, "trait" : "kickOffBarrier", "y" : -610 },
    { "v0" : 164, "v1" : 165, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 166, "v1" : 167, "color" : "FF6666", "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 168, "v1" : 169, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 170, "v1" : 171, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 172, "v1" : 173, "vis" : false, "bCoef" : 1000000, "cMask" : ["blue" ] }

],

"goals" : [
    { "p0" : [-1160,110 ], "p1" : [-1160,-110 ], "team" : "red" },
    { "p0" : [1160,110 ], "p1" : [1160,-110 ], "team" : "blue" }

],

"discs" : [
    { "pos" : [-1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [-1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },

    { "pos" : [-1250,150 ], "color" : "cacecd", "trait" : "stanchion" },
    { "pos" : [-1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : -1250, "y" : -150 },
    { "pos" : [1250,150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },
    { "pos" : [1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },

    { "pos" : [-1150,-550 ], "trait" : "cornerflag", "x" : -1150, "y" : -550 },
    { "pos" : [-1150,550 ], "trait" : "cornerflag", "x" : -1150, "y" : 550 },
    { "pos" : [1150,-550 ], "trait" : "cornerflag" },
    { "pos" : [1150,550 ], "trait" : "cornerflag" }

],

"planes" : [
    { "normal" : [0,1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },
    { "normal" : [0,-1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },

    { "normal" : [0,1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [0,-1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [-1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [1,0 ], "dist" : -1406, "bCoef" : 0 },
    { "normal" : [-1,0 ], "dist" : -1401, "bCoef" : 0 }

],

"traits" : {
    "ballArea" : { "vis" : false, "bCoef" : 0, "cMask" : ["ball" ] },
    "goalPost" : { "radius" : 5, "invMass" : 0, "bCoef" : 2 },
    "stanchion" : { "radius" : 3, "invMass" : 0, "bCoef" : 3, "cMask" : ["none" ] },
    "cornerflag" : { "radius" : 3, "invMass" : 0, "bCoef" : 0.5, "color" : "FFFF00", "cGroup" : [ ] },
    "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" },
    "tunnel" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "000000" },
    "advertising" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "333333" },
    "teambench" : { "vis" : true, "cMask" : [ ], "color" : "000000" },
    "manager" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "333333" },
    "physio" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "666666" },
    "redsubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "E56E56" },
    "bluesubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "5689E5" }

}`
room.setCustomStadium(realSoccer);
room.setTimeLimit(5);

The Above part will set the real soccer map you provided to the active map and sets limit to 5 minuites. ... Concerning the part of making the loser team automatic to spectators you can make it by checking the winner team , then set all the loser's team players to team 0 ( spectators). That' it, right now i am not having it's specific code as i'm on github from mobile phone :disappointed: .

I hope that you got it :sweat_smile: .

Raamyy commented 6 years ago

Concerning the greeting of the users i've implemented it in my video Haxball Headless Host

GrandesLigasHaxBall commented 6 years ago

thanks

GrandesLigasHaxBall commented 6 years ago

// Room Settings var _roomName = "REAL SOCCER 4vs4 (50 MEGAS)"; var _botName = "Bot HWN"; var _roomPublic = true; var _roomMaxPlayers = 8 // Bot/Ingame Settings var _quiteMode = false; // Doesn't send unneccessary messages when its true... var _gamePaused = false; // Bad Admin var _badAdmins = []; // Array to hold bad admins var _badAdminVoteCount = 0; // Current Vote Count For The Current Admin var _badAdminVoteThreshold = 5; // If Count == Threshold then We Make The Current Admin a Bad Admin. var _playersVoted = []; // Array to hold who voted in the last _voteDelay milliseconds... var _voteDelay = 1000 60; // Automatic Ban Removal var _removeBans; // This will be used for setInterval() var _removeBansInterval = 1000 300; // Bad Admin Detector - Checks Last Room Leavings (Leave + ing = Leaving) var _lastRoomLeavings; // Checking for possible bans since basro doesn't give us the information about bans/kicks/leaves... We have to assume it... Also will be used for setInterval(); var _lastRoomLeavingsCount = 0; // How Many Players Left The Room In the Last _lastRoomLeavingsInterval milliseconds var _lastRoomLeavingsInterval = 1000 * 10; var _lastRoomLeavingsThreshold = 3; // If Count == Threshold then We Make The Current Admin a Bad Admin. --- We assume the admin banned some people. // Strings var _stringQuiteModeOn = "Bot Will No Longer Speak!.."; var _stringQuiteModeOff = "Bot Will Speak!.."; var _stringBanRemoval = "All Bans Are Removed!"; var _stringVoteOnDelay = "You can only vote every " + _voteDelay/1000 + " seconds!"; var _stringVoteNoAdminFound = "No hay admin en el host! Escriba !admin para ser administrador"; var _stringVoteStatus = "Votos para cambiar admin: "; var _stringVoteSuccess = " Ya no es administrador! Para ser el nuevo administrador escriba !admin"; var _stringMakeAdminSuccess = " Es el nuevo administrador!"; var _stringMakeAdminErrorBadAdmin = "Perdón, pero eres un mal admin!"; var _stringMakeAdminErrorAdminExists = "Perdona chabon, pero ya hay un admin en el host..."; var _stringChangeAdminSuccess = "El admin ha sido cambiado!"; var _stringRemoveBadAdmin = " Is not a Bad Admin Anymore..."; var _stringOnBanRemoval = "All Bans Removed! Next Ban Removal Will Be In " + _removeBansInterval/1000 + " Seconds!"; var _stringOnPlayerJoinRoomConsoleOutput = " vino al host!"; // For Console Output var _stringOnPlayerJoinRoomWelcomeMessage = "Bienvenido al host de HWN "; // + player.name + ! var _stringOnPlayerJoinNoAdminFound = "Éste host no tiene admin. Escribe !admin para poder administralo y !commands para ver los comandos"; var _stringOnLastRoomLeavingsTrigger = "MAL ADMIN!!!"; var _stringOnPlayerLeaveRoomConsoleOutput = " has left!"; // For Console Output var _stringOnPlayerLeaveAdminLeave = "El admin se ha ido! Escribe !admin para ser el nuevo administrador."; var _stringOnTeamVictoryRedWin = "Felicidades ganó el red!"; var _stringOnTeamVictoryBlueWin = "Felicidades ganó el azul!"; var _stringOnChatCommandCommands = "!commands"; // Admin and Player Command var _stringOnChatCommandPause = "!p"; // Admin Command var _stringOnChatCommandQuiteBot = "!quite"; // Admin Command var _stringOnChatCommandAdmin = "!admin"; // Admin and Player Command var _stringOnChatCommandStartGame = "!start"; // Admin Command var _stringOnChatCommandStopGame = "!stop"; // Admin Command var _stringOnChatCommandGameMode3v3 = "!v3"; // Admin Command var _stringOnChatCommandGameMode1v1 = "!v1"; // Admin Command var _stringOnChatCommandRematch = "!rematch"; // Admin Command var _stringOnChatCommandRemoveBans = "!removebans"; // Admin Command var _stringOnChatCommandRemoveBansResponse = "Todos los bans han sido removidos!"; // Admin Command Response var _stringOnChatCommandContact = "!contact"; // Player Command var _stringOnChatCommandContactResponse = "Hola, soy un bot de HWN. Siguenos en @HWN_HaxBAll (Twitter)"; // Player Command Response var _stringOnChatCommandHello = "!Hola"; // Player Command var _stringOnChatCommandHelloResponsePreString = "Hola "; // PreString + Name + AfterString = Response var _stringOnChatCommandHelloResponseAfterString = "!"; // In This Case a player named Wrath would get a response of "Hello Wrath!"; var _stringOnChatCommandAdvertise = "!ad"; // Player Command var _stringOnChatCommandAdvertiseResponse = "No hagan trampas ni spam. Y no olviden divertirse!"; // Player Command Response var _stringOnChatCommandVoteBadAdmin = "!badadmin"; // Player Command var _stringOnChatCommandCommandsAdminResponse = "COMANDOS: !p, !quite, !admin, !start, !stop, !v3, !v1, !rematch, !removebans"; var _stringOnChatCommandCommandsPlayerResponse = "COMANDOS: !hello, !contact, !admin, !ad, !badadmin"; // Room Initialization var room = HBInit({ roomName: _roomName, playerName: _botName, public:_roomPublic, maxPlayers: _roomMaxPlayers });

// Game Functions function GameMode1v1(){room.stopGame();setTimeout(function() {room.setDefaultStadium("Classic");room.setScoreLimit(2);room.setTimeLimit(2);room.startGame();}, 200);}; function GameMode3v3(){room.stopGame();setTimeout(function() {room.setDefaultStadium("Big");room.setScoreLimit(3);room.setTimeLimit(3);room.startGame();}, 200);};

// Bot Functions function SendMsg(msg, ignoreQuiteMode=true){if(!ignoreQuiteMode && _quiteMode){return;}room.sendChat(msg);}; function QuiteBot(){if(!_quiteMode){SendMsg(_stringQuiteModeOn,true);}else{SendMsg(_stringQuiteModeOff,true)}_quiteMode=!_quiteMode;}

// Player Functions function Kick(name, msg){room.kickPlayer(GetPlayerByName(name).id,msg,false);} function Ban(name, msg){room.kickPlayer(GetPlayerByName(name).id,msg,true);} function MakeAdmin(player){if(GetAdmin()==null&&!IsBadAdmin(player.name)){room.setPlayerAdmin(player.id, true);SendMsg(player.name + _stringMakeAdminSuccess,true);_badAdminVoteCount=0;}else if(IsBadAdmin(player.name)){SendMsg(_stringMakeAdminErrorBadAdmin,false);}else{SendMsg(_stringMakeAdminErrorAdminExists,false);}}

// Utility Functions function GetAllPlayers(){return room.getPlayerList().filter((player) => player.id != 0 );}; function GetPlayerByName(name){return room.getPlayerList().filter((player) => player.name == name)[0];}; function GetAllPlayersByName(name){return room.getPlayerList().filter((player) => player.name == name);}; function GetAdmin(){return room.getPlayerList().filter((player) => player.admin == true && player.id != 0)[0];}; function GetAllAdmins(){return room.getPlayerList().filter((player) => player.admin == true && player.id != 0);};

// Bad-Admin-System Functions function IsBadAdmin(name){for(var i=0;i<_badAdmins.length;i++){if(_badAdmins[i].name == name){return true;}}return false;} function DidVote(name){for(var i=0;i<_playersVoted.length;i++){if(_playersVoted[i].name == name){return true;}}return false;} function VoteBadAdmin(player){if(DidVote(player.name)){SendMsg(_stringVoteOnDelay,false);return;}var currentAdmin=GetAdmin();if(currentAdmin==null){SendMsg(_stringVoteNoAdminFound,true);return;}if(++_badAdminVoteCount>_badAdminVoteThreshold-1){MakeBadAdmin();}else{SendMsg(_stringVoteStatus+_badAdminVoteCount+"/"+_badAdminVoteThreshold+" ["+currentAdmin.name+"]",true);}_playersVoted[_playersVoted.length]=player;setTimeout(function(){if(--_badAdminVoteCount<0){_badAdminVoteCount++;};for(var i=0;i<_playersVoted.length;i++){if(_playersVoted[i].name == player.name){_playersVoted.splice(i,1);}}}, _voteDelay);} function MakeBadAdmin(){var currentAdmin = GetAdmin();_badAdmins[_badAdmins.length]=currentAdmin;room.setPlayerAdmin(currentAdmin.id, false);SendMsg(currentAdmin.name + _stringVoteSuccess,true);};

// Ban-Removal-System Functions function RemoveBans(){SendMsg(_stringBanRemoval,false);room.clearBans();}

// Console Functions -- Usable Through Console... function ChangeAdmin(name, makeOldAdminABadAdmin = false, removeAllAdmins = true){if(makeOldAdminABadAdmin){MakeBadAdmin();}if(removeAllAdmins){var admins=GetAllAdmins();for(var i=0;i<admins.length;i++){room.setPlayerAdmin(admins[i].id,false);}}else{room.setPlayerAdmin(GetAdmin().id,false);}room.setPlayerAdmin(GetPlayerByName(name)[0].id,true);SendMsg(_stringChangeAdminSuccess,true);} function KickAll(msg = "Kicking All.", ban = false){var players=GetAllPlayers();for(var i=0;i<players.length;i++){room.kickPlayer(players[i].id,msg,ban);}} function RemoveBadAdmin(name){for(var i=0;i<_badAdmins.length;i++){if(_badAdmins[i].name == name){_badAdmins.splice(i,1);SendMsg(name + _stringRemoveBadAdmin,true);return;}}}

// Events room.onPlayerJoin = function(player) {console.log(player.name + _stringOnPlayerJoinRoomConsoleOutput);SendMsg(_stringOnPlayerJoinRoomWelcomeMessage + player.name + "!",false); if(GetAdmin()==null){SendMsg(_stringOnPlayerJoinNoAdminFound,true);}} room.onPlayerLeave = function(player) {if(++_lastRoomLeavingsCount>_lastRoomLeavingsThreshold-1 && GetAdmin() != null){_lastRoomLeavingsCount=0;SendMsg(_stringOnLastRoomLeavingsTrigger);RemoveBans();MakeBadAdmin();}console.log(player.name + _stringOnPlayerLeaveRoomConsoleOutput);if(player.admin){SendMsg(_stringOnPlayerLeaveAdminLeave);}} room.onTeamVictory = function(scores) {if(scores.red>scores.blue){SendMsg(_stringOnTeamVictoryRedWin,false);}else{SendMsg(_stringOnTeamVictoryBlueWin,false);}} room.onPlayerChat = function(player, message) {console.log(player.name + ": " + message); if(player.admin){if(message == _stringOnChatCommandPause){room.pauseGame(!_gamePaused); _gamePaused = !_gamePaused;}else if(message==_stringOnChatCommandQuiteBot){QuiteBot();}else if(message == _stringOnChatCommandAdmin){room.setPlayerAdmin(player.id, !player.admin);}else if(message == _stringOnChatCommandStartGame){room.startGame();}else if(message==_stringOnChatCommandStopGame){room.stopGame();}else if(message==_stringOnChatCommandGameMode3v3){GameMode3v3();}else if(message==_stringOnChatCommandRematch){room.stopGame();room.startGame();}else if(message==_stringOnChatCommandGameMode1v1){GameMode1v1();}else if(message==_stringOnChatCommandRemoveBans){SendMsg(_stringOnChatCommandRemoveBansResponse,true);room.clearBans();}else if(message==_stringOnChatCommandCommands){SendMsg("[" + player.name + " - Admin] " + _stringOnChatCommandCommandsAdminResponse ,true);}} else {if(message==_stringOnChatCommandCommands){SendMsg("[" + player.name + " - Player] " + _stringOnChatCommandCommandsPlayerResponse,false);}else if(message==_stringOnChatCommandContact){SendMsg(_stringOnChatCommandContactResponse,false);}else if(message==_stringOnChatCommandHello){SendMsg(_stringOnChatCommandHelloResponsePreString + player.name + _stringOnChatCommandHelloResponseAfterString,false);}else if(message==_stringOnChatCommandAdvertise){SendMsg(_stringOnChatCommandAdvertiseResponse,false);}else if(message==_stringOnChatCommandVoteBadAdmin){VoteBadAdmin(player);}else if(message==_stringOnChatCommandAdmin){MakeAdmin(player);}}};

// Intervals _removeBans = setInterval(function() {SendMsg(_stringOnBanRemoval,true);room.clearBans();},_removeBansInterval); _lastRoomLeavings = setInterval(function() {_lastRoomLeavingsCount=0;}, _lastRoomLeavingsInterval);

Thank you very much for your help! Could you help me with this? I do not know where to put what you did. And could you tell me more clearly how to make the losing players be placed as spectators?

Raamyy commented 6 years ago
// Maps Declaration
var realSoccer=`{
name" : "Real Soccer V4 Kuma Dope By GLH",

"width" : 1700,

"height" : 610,

"spawnDistance" : 300,

"bg" : { "type" : "grass", "width" : 1150, "height" : 550, "kickOffRadius" : 180, "cornerRadius" : 0 },

"playerPhysics" : {
    "bCoef" : 0.5,
    "invMass" : 0.5,
    "damping" : 0.96,
    "acceleration" : 0.12,
    "kickingAcceleration" : 0.07,
    "kickingDamping" : 0.96,
    "kickStrength" : 5.65

},

"ballPhysics" : {
    "radius" : 10,
    "bCoef" : 0.5,
    "invMass" : 1,
    "damping" : 0.99,
    "color" : "FFFFFF",
    "cMask" : [ "all"
    ],
    "cGroup" : [ "ball"
    ]

},

"vertexes" : [
    /* 0 */ { "x" : 0, "y" : 660, "trait" : "kickOffBarrier" },
    /* 1 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 2 */ { "x" : 0, "y" : -180, "trait" : "kickOffBarrier", "color" : "C7E6BD" },
    /* 3 */ { "x" : 0, "y" : -660, "trait" : "kickOffBarrier" },

    /* 4 */ { "x" : 1150, "y" : 250, "trait" : "line" },
    /* 5 */ { "x" : 840, "y" : 250, "trait" : "line" },
    /* 6 */ { "x" : 1150, "y" : -250, "trait" : "line" },
    /* 7 */ { "x" : 840, "y" : -250, "trait" : "line" },
    /* 8 */ { "x" : 1150, "y" : 150, "trait" : "line" },
    /* 9 */ { "x" : 1030, "y" : 150, "trait" : "line" },
    /* 10 */ { "x" : 1150, "y" : -150, "trait" : "line" },
    /* 11 */ { "x" : 1030, "y" : -150, "trait" : "line" },
    /* 12 */ { "x" : 840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 13 */ { "x" : 840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 14 */ { "x" : -1150, "y" : -250, "trait" : "line" },
    /* 15 */ { "x" : -840, "y" : -250, "trait" : "line" },
    /* 16 */ { "x" : -1150, "y" : 250, "trait" : "line" },
    /* 17 */ { "x" : -840, "y" : 250, "trait" : "line" },
    /* 18 */ { "x" : -1150, "y" : -150, "trait" : "line" },
    /* 19 */ { "x" : -1030, "y" : -150, "trait" : "line" },
    /* 20 */ { "x" : -1150, "y" : 150, "trait" : "line" },
    /* 21 */ { "x" : -1030, "y" : 150, "trait" : "line" },
    /* 22 */ { "x" : -840, "y" : 130, "trait" : "line", "curve" : -130 },
    /* 23 */ { "x" : -840, "y" : -130, "trait" : "line", "curve" : -130 },
    /* 24 */ { "x" : 935, "y" : 4, "trait" : "line" },
    /* 25 */ { "x" : 935, "y" : -4, "trait" : "line" },
    /* 26 */ { "x" : -935, "y" : 4, "trait" : "line" },
    /* 27 */ { "x" : -935, "y" : -4, "trait" : "line" },
    /* 28 */ { "x" : -1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 29 */ { "x" : -1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 30 */ { "x" : -1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 31 */ { "x" : -1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 32 */ { "x" : 1125, "y" : 550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 33 */ { "x" : 1150, "y" : 525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 34 */ { "x" : 1150, "y" : -525, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    /* 35 */ { "x" : 1125, "y" : -550, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0 },
    /* 36 */ { "x" : -1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 37 */ { "x" : -1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 38 */ { "x" : -1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 39 */ { "x" : -1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 40 */ { "x" : 1150, "y" : 112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 41 */ { "x" : 1210, "y" : 110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 42 */ { "x" : 1150, "y" : -112, "cMask" : ["ball" ], "trait" : "line", "color" : "ffffff" },
    /* 43 */ { "x" : 1210, "y" : -110, "cMask" : ["ball" ], "trait" : "line", "color" : "FFFFFF" },
    /* 44 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 45 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 46 */ { "x" : 0, "y" : -4, "trait" : "line", "color" : "C7E6BD" },
    /* 47 */ { "x" : 0, "y" : 4, "trait" : "line", "color" : "C7E6BD" },
    /* 48 */ { "x" : -1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 49 */ { "x" : -1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 50 */ { "x" : 1170, "y" : 150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 51 */ { "x" : 1170, "y" : 250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 52 */ { "x" : -1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 53 */ { "x" : -1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 54 */ { "x" : 1170, "y" : -150, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 55 */ { "x" : 1170, "y" : -250, "bCoef" : -4.5, "cMask" : ["ball" ], "trait" : "line", "curve" : 40, "color" : "576C46" },
    /* 56 */ { "x" : 1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 57 */ { "x" : 1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 58 */ { "x" : 1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 59 */ { "x" : 1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 60 */ { "x" : -1162, "y" : 550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 61 */ { "x" : -1190, "y" : 530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : -60, "color" : "576C46" },
    /* 62 */ { "x" : -1162, "y" : -550, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },
    /* 63 */ { "x" : -1190, "y" : -530, "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line", "curve" : 60, "color" : "576C46" },

    /* 64 */ { "x" : -1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 65 */ { "x" : -1177, "y" : -150, "cMask" : ["ball" ] },

    /* 66 */ { "x" : -1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 67 */ { "x" : -1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },

    /* 68 */ { "x" : -1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 69 */ { "x" : -1177, "y" : 150, "cMask" : ["ball" ] },
    /* 70 */ { "x" : 1177, "y" : -250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 71 */ { "x" : 1177, "y" : -150, "cMask" : ["ball" ] },

    /* 72 */ { "x" : 1170, "y" : -150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 73 */ { "x" : 1170, "y" : -250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 74 */ { "x" : 1177, "y" : 250, "bCoef" : 0, "cMask" : ["ball" ] },
    /* 75 */ { "x" : 1177, "y" : 150, "cMask" : ["ball" ] },

    /* 76 */ { "x" : 1170, "y" : 250, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },
    /* 77 */ { "x" : 1170, "y" : 150, "bCoef" : -5, "cMask" : ["ball" ], "trait" : "line", "curve" : -40, "color" : "576C46" },

    /* 78 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 79 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : -180 },
    /* 80 */ { "x" : 0, "y" : -180, "cMask" : ["red","blue" ], "cGroup" : ["redKO","blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 81 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 82 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 83 */ { "x" : 0, "y" : 180, "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 84 */ { "x" : 0, "y" : 180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },
    /* 85 */ { "x" : 0, "y" : -180, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "color" : "C7E6BD", "vis" : true, "curve" : 0 },

    /* 86 */ { "x" : -820, "y" : -550, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 87 */ { "x" : -1150, "y" : -260, "trait" : "line", "curve" : 90, "color" : "638750" },
    /* 88 */ { "x" : -1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 89 */ { "x" : -820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 90 */ { "x" : 820, "y" : 550, "trait" : "line", "color" : "638750" },
    /* 91 */ { "x" : 1150, "y" : 260, "trait" : "line", "color" : "638750" },
    /* 92 */ { "x" : 820, "y" : -550, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 93 */ { "x" : 1150, "y" : -260, "trait" : "line", "curve" : -90, "color" : "638750" },
    /* 94 */ { "x" : 1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 95 */ { "x" : -1150, "y" : -475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 96 */ { "x" : 1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 97 */ { "x" : -1150, "y" : 475, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "curve" : 0, "color" : "638750" },
    /* 98 */ { "x" : -1150, "y" : -550, "trait" : "line" },
    /* 99 */ { "x" : -1150, "y" : 550, "trait" : "line" },
    /* 100 */ { "x" : 1150, "y" : 550, "trait" : "line" },
    /* 101 */ { "x" : 1150, "y" : -550, "trait" : "line" },
    /* 102 */ { "x" : -1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 103 */ { "x" : -1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 104 */ { "x" : 1250, "y" : -150, "trait" : "line", "color" : "FFFFFF" },
    /* 105 */ { "x" : 1250, "y" : 150, "trait" : "line", "color" : "FFFFFF" },
    /* 106 */ { "x" : -22.95068610634644, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 107 */ { "x" : -14.970411663807909, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 108 */ { "x" : -27.738850771869693, "y" : -581.6059176672384, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 109 */ { "x" : -2.2019725557461243, "y" : -598.3644939965695, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 110 */ { "x" : -2.2019725557461243, "y" : -568.0394511149228, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 111 */ { "x" : 11.364493996569536, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 112 */ { "x" : 25.728987993138844, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 113 */ { "x" : 25.728987993138844, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 114 */ { "x" : 25.728987993138844, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 115 */ { "x" : 41.68953687821613, "y" : -583.2019725557461, "trait" : "line", "color" : "60764d" },
    /* 116 */ { "x" : 41.68953687821613, "y" : -598.3644939965695, "trait" : "line", "color" : "60764d" },
    /* 117 */ { "x" : 41.68953687821613, "y" : -568.0394511149228, "trait" : "line", "color" : "60764d" },
    /* 118 */ { "x" : -22.95068610634644, "y" : -595.172384219554, "trait" : "line", "color" : "60764d" },
    /* 119 */ { "x" : -14.970411663807909, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 120 */ { "x" : -27.738850771869693, "y" : -580.0098627787306, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 121 */ { "x" : -2.2019725557461243, "y" : -596.7684391080618, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 122 */ { "x" : -2.2019725557461243, "y" : -566.4433962264151, "trait" : "line", "curve" : 0, "color" : "60764d" },
    /* 123 */ { "x" : 11.364493996569536, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 124 */ { "x" : 25.728987993138844, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 125 */ { "x" : 25.728987993138844, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 126 */ { "x" : 25.728987993138844, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 127 */ { "x" : 41.68953687821613, "y" : -581.6059176672384, "trait" : "line", "color" : "60764d" },
    /* 128 */ { "x" : 41.68953687821613, "y" : -596.7684391080618, "trait" : "line", "color" : "60764d" },
    /* 129 */ { "x" : 41.68953687821613, "y" : -566.4433962264151, "trait" : "line", "color" : "60764d" },
    /* 130 */ { "x" : -22.152658662092563, "y" : -599.1625214408233, "trait" : "line" },
    /* 131 */ { "x" : -14.172384219554033, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 132 */ { "x" : -26.940823327615817, "y" : -584, "trait" : "line", "curve" : 0 },
    /* 133 */ { "x" : -1.4039451114922485, "y" : -600.758576329331, "trait" : "line", "curve" : 0 },
    /* 134 */ { "x" : -1.4039451114922485, "y" : -570.4335334476843, "trait" : "line", "curve" : 0 },
    /* 135 */ { "x" : 12.162521440823411, "y" : -570.4335334476843, "trait" : "line" },
    /* 136 */ { "x" : 26.52701543739272, "y" : -600.758576329331, "trait" : "line" },
    /* 137 */ { "x" : 26.52701543739272, "y" : -570.4335334476843, "trait" : "line" },
    /* 138 */ { "x" : 26.52701543739272, "y" : -585.5960548885078, "trait" : "line" },
    /* 139 */ { "x" : 42.48756432247001, "y" : -585.5960548885078, "trait" : "line" },
    /* 140 */ { "x" : 42.48756432247001, "y" : -600.758576329331, "trait" : "line" },
    /* 141 */ { "x" : 42.48756432247001, "y" : -570.4335334476843, "trait" : "line" },

    /* 142 */ { "x" : -1406, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 143 */ { "x" : -1306, "y" : -610, "bCoef" : 0, "cMask" : ["blue" ], "_selected" : true },
    /* 144 */ { "x" : -1306, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 145 */ { "x" : -1406, "y" : 610, "bCoef" : 0, "cMask" : ["blue" ] },

    /* 146 */ { "x" : -1404, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 147 */ { "x" : -1306, "y" : -610, "trait" : "kickOffBarrier", "_selected" : true },
    /* 148 */ { "x" : -1306, "y" : 610, "trait" : "kickOffBarrier" },
    /* 149 */ { "x" : -1406, "y" : 610, "trait" : "kickOffBarrier" },

    /* 150 */ { "x" : -1346, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 151 */ { "x" : -1346, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ], "color" : "6666FF" },
    /* 152 */ { "x" : -1351, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 153 */ { "x" : -1341, "y" : -75, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 154 */ { "x" : -1351, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 155 */ { "x" : -1341, "y" : 85, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 156 */ { "x" : -1396, "y" : -75, "bCoef" : 0, "cMask" : ["red" ] },
    /* 157 */ { "x" : -1396, "y" : 85, "bCoef" : 0, "cMask" : ["red" ] },
    /* 158 */ { "x" : 1401, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 159 */ { "x" : 1301, "y" : -610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 160 */ { "x" : 1301, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },
    /* 161 */ { "x" : 1401, "y" : 610, "bCoef" : 0, "cMask" : ["red" ] },

    /* 162 */ { "x" : 1402, "y" : -610, "trait" : "kickOffBarrier" },
    /* 163 */ { "x" : 1301, "y" : -610, "trait" : "kickOffBarrier" },
    /* 164 */ { "x" : 1301, "y" : 610, "trait" : "kickOffBarrier" },
    /* 165 */ { "x" : 1402, "y" : 610, "trait" : "kickOffBarrier" },

    /* 166 */ { "x" : 1341, "y" : -89, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 167 */ { "x" : 1341, "y" : 71, "bCoef" : 0, "cMask" : ["red" ], "color" : "FF6666" },
    /* 168 */ { "x" : 1346, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 169 */ { "x" : 1336, "y" : -89, "bCoef" : 0, "cMask" : ["red" ] },
    /* 170 */ { "x" : 1346, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 171 */ { "x" : 1336, "y" : 71, "bCoef" : 0, "cMask" : ["red" ] },
    /* 172 */ { "x" : 1391, "y" : -89, "bCoef" : 0, "cMask" : ["blue" ] },
    /* 173 */ { "x" : 1391, "y" : 71, "bCoef" : 0, "cMask" : ["blue" ] }

],

"segments" : [
    { "v0" : 37, "v1" : 39, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetleft", "x" : -1210 },

    { "v0" : 41, "v1" : 43, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "reargoalNetright" },

    { "v0" : 0, "v1" : 1, "trait" : "kickOffBarrier" },
    { "v0" : 2, "v1" : 3, "trait" : "kickOffBarrier" },

    { "v0" : 4, "v1" : 5, "trait" : "line", "y" : 250 },
    { "v0" : 5, "v1" : 7, "trait" : "line", "x" : 840 },
    { "v0" : 6, "v1" : 7, "trait" : "line", "y" : -250 },
    { "v0" : 8, "v1" : 9, "trait" : "line", "y" : 150 },
    { "v0" : 9, "v1" : 11, "trait" : "line", "x" : 1030 },
    { "v0" : 10, "v1" : 11, "trait" : "line", "y" : -150 },
    { "v0" : 12, "v1" : 13, "curve" : -130, "trait" : "line", "x" : 840 },
    { "v0" : 14, "v1" : 15, "trait" : "line", "y" : -250 },
    { "v0" : 15, "v1" : 17, "trait" : "line", "x" : -840 },
    { "v0" : 16, "v1" : 17, "trait" : "line", "y" : 250 },
    { "v0" : 18, "v1" : 19, "trait" : "line", "y" : -150 },
    { "v0" : 19, "v1" : 21, "trait" : "line", "x" : -1030 },
    { "v0" : 20, "v1" : 21, "trait" : "line", "y" : 150 },
    { "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" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 30, "v1" : 31, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 32, "v1" : 33, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 34, "v1" : 35, "curve" : 90, "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },

    { "v0" : 36, "v1" : 37, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 38, "v1" : 39, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 40, "v1" : 41, "curve" : -5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },
    { "v0" : 42, "v1" : 43, "curve" : 5, "color" : "ffffff", "cMask" : ["ball" ], "trait" : "sidegoalNet" },

    { "v0" : 44, "v1" : 45, "curve" : -180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 180, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 44, "v1" : 45, "curve" : -90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 46, "v1" : 47, "curve" : 90, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 48, "v1" : 49, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 50, "v1" : 51, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 52, "v1" : 53, "curve" : -40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : -1220 },
    { "v0" : 54, "v1" : 55, "curve" : 40, "vis" : true, "color" : "576C46", "bCoef" : -4.7, "cMask" : ["ball" ], "trait" : "line", "x" : 1220 },
    { "v0" : 56, "v1" : 57, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 58, "v1" : 59, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 60, "v1" : 61, "curve" : -60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },
    { "v0" : 62, "v1" : 63, "curve" : 60, "vis" : true, "color" : "576C46", "bCoef" : -2.45, "cMask" : ["ball" ], "trait" : "line" },

    { "v0" : 53, "v1" : 64, "vis" : true, "bCoef" : 0, "cMask" : ["ball" ] },
    { "v0" : 52, "v1" : 65, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 69, "v1" : 68, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 67, "v1" : 66, "vis" : true, "cMask" : ["ball" ] },
    { "v0" : 75, "v1" : 77, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 74, "v1" : 76, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 70, "v1" : 73, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },
    { "v0" : 71, "v1" : 72, "vis" : true, "color" : "000000", "cMask" : ["ball" ] },

    { "v0" : 78, "v1" : 79, "curve" : 180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 78, "v1" : 79, "curve" : -180, "vis" : true, "color" : "C7E6BD", "cGroup" : ["redKO" ], "trait" : "kickOffBarrier", "x" : 0 },
    { "v0" : 82, "v1" : 81, "vis" : true, "color" : "C7E6BD", "bCoef" : 0.1, "cMask" : ["red" ], "cGroup" : ["blueKO" ], "trait" : "kickOffBarrier", "x" : 0 },

    { "v0" : 86, "v1" : 87, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 88, "v1" : 89, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 90, "v1" : 91, "curve" : 90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 92, "v1" : 93, "curve" : -90, "vis" : true, "color" : "638750", "trait" : "line" },
    { "v0" : 94, "v1" : 95, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line" },
    { "v0" : 96, "v1" : 97, "curve" : 0, "vis" : true, "color" : "638750", "bCoef" : 0, "cMask" : ["wall" ], "trait" : "line", "y" : 475 },
    { "v0" : 98, "v1" : 99, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 99, "v1" : 100, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 98, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 100, "v1" : 101, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 39, "v1" : 102, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 37, "v1" : 103, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 43, "v1" : 104, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 41, "v1" : 105, "vis" : true, "color" : "FFFFFF", "trait" : "line" },
    { "v0" : 106, "v1" : 107, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 107, "v1" : 108, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 109, "v1" : 110, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 110, "v1" : 111, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 112, "v1" : 113, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 114, "v1" : 115, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 116, "v1" : 117, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 118, "v1" : 119, "curve" : -294.5055190310947, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 119, "v1" : 120, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 121, "v1" : 122, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 122, "v1" : 123, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 124, "v1" : 125, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 126, "v1" : 127, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 128, "v1" : 129, "curve" : 0, "vis" : true, "color" : "60764d", "trait" : "line" },
    { "v0" : 130, "v1" : 131, "curve" : -294.5055190310947, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 131, "v1" : 132, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 133, "v1" : 134, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 134, "v1" : 135, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 136, "v1" : 137, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 138, "v1" : 139, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },
    { "v0" : 140, "v1" : 141, "curve" : 0, "vis" : true, "color" : "C7E6BD", "trait" : "line" },

    { "v0" : 142, "v1" : 143, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : -610, "_selected" : true },
    { "v0" : 143, "v1" : 144, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 144, "v1" : 145, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ], "y" : 610 },

    { "v0" : 146, "v1" : 147, "trait" : "kickOffBarrier", "y" : -610, "_selected" : true },
    { "v0" : 148, "v1" : 149, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 150, "v1" : 151, "color" : "6666FF", "bCoef" : 1000000, "cMask" : ["blue" ] },
    { "v0" : 152, "v1" : 153, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 154, "v1" : 155, "vis" : false, "bCoef" : 0, "cMask" : ["blue" ] },
    { "v0" : 156, "v1" : 157, "vis" : false, "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 158, "v1" : 159, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : -610 },
    { "v0" : 159, "v1" : 160, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 160, "v1" : 161, "vis" : false, "bCoef" : 0, "cMask" : ["red" ], "y" : 610 },

    { "v0" : 162, "v1" : 163, "trait" : "kickOffBarrier", "y" : -610 },
    { "v0" : 164, "v1" : 165, "trait" : "kickOffBarrier", "y" : 610 },

    { "v0" : 166, "v1" : 167, "color" : "FF6666", "bCoef" : 1000000, "cMask" : ["red" ] },
    { "v0" : 168, "v1" : 169, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 170, "v1" : 171, "vis" : false, "bCoef" : 0, "cMask" : ["red" ] },
    { "v0" : 172, "v1" : 173, "vis" : false, "bCoef" : 1000000, "cMask" : ["blue" ] }

],

"goals" : [
    { "p0" : [-1160,110 ], "p1" : [-1160,-110 ], "team" : "red" },
    { "p0" : [1160,110 ], "p1" : [1160,-110 ], "team" : "blue" }

],

"discs" : [
    { "pos" : [-1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [-1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,112 ], "color" : "cacecd", "trait" : "goalPost" },
    { "pos" : [1150,-112 ], "color" : "cacecd", "trait" : "goalPost" },

    { "pos" : [-1250,150 ], "color" : "cacecd", "trait" : "stanchion" },
    { "pos" : [-1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : -1250, "y" : -150 },
    { "pos" : [1250,150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },
    { "pos" : [1250,-150 ], "color" : "cacecd", "trait" : "stanchion", "x" : 1250 },

    { "pos" : [-1150,-550 ], "trait" : "cornerflag", "x" : -1150, "y" : -550 },
    { "pos" : [-1150,550 ], "trait" : "cornerflag", "x" : -1150, "y" : 550 },
    { "pos" : [1150,-550 ], "trait" : "cornerflag" },
    { "pos" : [1150,550 ], "trait" : "cornerflag" }

],

"planes" : [
    { "normal" : [0,1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },
    { "normal" : [0,-1 ], "dist" : -580, "bCoef" : 0, "trait" : "ballArea" },

    { "normal" : [0,1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [0,-1 ], "dist" : -610, "bCoef" : 0 },
    { "normal" : [1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [-1,0 ], "dist" : -1220, "bCoef" : 0, "cMask" : ["ball" ] },
    { "normal" : [1,0 ], "dist" : -1406, "bCoef" : 0 },
    { "normal" : [-1,0 ], "dist" : -1401, "bCoef" : 0 }

],

"traits" : {
    "ballArea" : { "vis" : false, "bCoef" : 0, "cMask" : ["ball" ] },
    "goalPost" : { "radius" : 5, "invMass" : 0, "bCoef" : 2 },
    "stanchion" : { "radius" : 3, "invMass" : 0, "bCoef" : 3, "cMask" : ["none" ] },
    "cornerflag" : { "radius" : 3, "invMass" : 0, "bCoef" : 0.5, "color" : "FFFF00", "cGroup" : [ ] },
    "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" },
    "tunnel" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "000000" },
    "advertising" : { "vis" : true, "cMask" : ["red","blue" ], "color" : "333333" },
    "teambench" : { "vis" : true, "cMask" : [ ], "color" : "000000" },
    "manager" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "333333" },
    "physio" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "666666" },
    "redsubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "E56E56" },
    "bluesubs" : { "radius" : 15, "vis" : true, "cMask" : ["red","blue" ], "invMass" : 0, "color" : "5689E5" }

}`

// Room Settings
var _roomName = "REAL SOCCER 4vs4 (50 MEGAS)";
var _botName = "Bot HWN";
var _roomPublic = true;
var _roomMaxPlayers = 8
// Bot/Ingame Settings
var _quiteMode = false; // Doesn't send unneccessary messages when its true...
var _gamePaused = false;
// Bad Admin
var _badAdmins = []; // Array to hold bad admins
var _badAdminVoteCount = 0; // Current Vote Count For The Current Admin
var _badAdminVoteThreshold = 5; // If Count == Threshold then We Make The Current Admin a Bad Admin.
var _playersVoted = []; // Array to hold who voted in the last _voteDelay milliseconds...
var _voteDelay = 1000 * 60;
// Automatic Ban Removal
var _removeBans; // This will be used for setInterval()
var _removeBansInterval = 1000 * 300;
// Bad Admin Detector - Checks Last Room Leavings (Leave + ing = Leaving)
var _lastRoomLeavings; // Checking for possible bans since basro doesn't give us the information about bans/kicks/leaves... We have to assume it... Also will be used for setInterval();
var _lastRoomLeavingsCount = 0; // How Many Players Left The Room In the Last _lastRoomLeavingsInterval milliseconds
var _lastRoomLeavingsInterval = 1000 * 10;
var _lastRoomLeavingsThreshold = 3; // If Count == Threshold then We Make The Current Admin a Bad Admin. --- We assume the admin banned some people.
// Strings
var _stringQuiteModeOn = "Bot Will No Longer Speak!..";
var _stringQuiteModeOff = "Bot Will Speak!..";
var _stringBanRemoval = "All Bans Are Removed!";
var _stringVoteOnDelay = "You can only vote every " + _voteDelay/1000 + " seconds!";
var _stringVoteNoAdminFound = "No hay admin en el host! Escriba !admin para ser administrador";
var _stringVoteStatus = "Votos para cambiar admin: ";
var _stringVoteSuccess = " Ya no es administrador! Para ser el nuevo administrador escriba !admin";
var _stringMakeAdminSuccess = " Es el nuevo administrador!";
var _stringMakeAdminErrorBadAdmin = "Perdón, pero eres un mal admin!";
var _stringMakeAdminErrorAdminExists = "Perdona chabon, pero ya hay un admin en el host...";
var _stringChangeAdminSuccess = "El admin ha sido cambiado!";
var _stringRemoveBadAdmin = " Is not a Bad Admin Anymore...";
var _stringOnBanRemoval = "All Bans Removed! Next Ban Removal Will Be In " + _removeBansInterval/1000 + " Seconds!";
var _stringOnPlayerJoinRoomConsoleOutput = " vino al host!"; // For Console Output
var _stringOnPlayerJoinRoomWelcomeMessage = "Bienvenido al host de HWN "; // + player.name + !
var _stringOnPlayerJoinNoAdminFound = "Éste host no tiene admin. Escribe !admin para poder administralo y !commands para ver los comandos";
var _stringOnLastRoomLeavingsTrigger = "MAL ADMIN!!!";
var _stringOnPlayerLeaveRoomConsoleOutput = " has left!"; // For Console Output
var _stringOnPlayerLeaveAdminLeave = "El admin se ha ido! Escribe !admin para ser el nuevo administrador.";
var _stringOnTeamVictoryRedWin = "Felicidades ganó el red!";
var _stringOnTeamVictoryBlueWin = "Felicidades ganó el azul!";
var _stringOnChatCommandCommands = "!commands"; // Admin and Player Command
var _stringOnChatCommandPause = "!p"; // Admin Command
var _stringOnChatCommandQuiteBot = "!quite"; // Admin Command
var _stringOnChatCommandAdmin = "!admin"; // Admin and Player Command
var _stringOnChatCommandStartGame = "!start"; // Admin Command
var _stringOnChatCommandStopGame = "!stop"; // Admin Command
var _stringOnChatCommandGameMode3v3 = "!v3"; // Admin Command
var _stringOnChatCommandGameMode1v1 = "!v1"; // Admin Command
var _stringOnChatCommandRematch = "!rematch"; // Admin Command
var _stringOnChatCommandRemoveBans = "!removebans"; // Admin Command
var _stringOnChatCommandRemoveBansResponse = "Todos los bans han sido removidos!"; // Admin Command Response
var _stringOnChatCommandContact = "!contact"; // Player Command
var _stringOnChatCommandContactResponse = "Hola, soy un bot de HWN. Siguenos en @HWN_HaxBAll (Twitter)"; // Player Command Response
var _stringOnChatCommandHello = "!Hola"; // Player Command
var _stringOnChatCommandHelloResponsePreString = "Hola "; // PreString + Name + AfterString = Response
var _stringOnChatCommandHelloResponseAfterString = "!"; // In This Case a player named Wrath would get a response of "Hello Wrath!";
var _stringOnChatCommandAdvertise = "!ad"; // Player Command
var _stringOnChatCommandAdvertiseResponse = "No hagan trampas ni spam. Y no olviden divertirse!"; // Player Command Response
var _stringOnChatCommandVoteBadAdmin = "!badadmin"; // Player Command
var _stringOnChatCommandCommandsAdminResponse = "COMANDOS: !p, !quite, !admin, !start, !stop, !v3, !v1, !rematch, !removebans";
var _stringOnChatCommandCommandsPlayerResponse = "COMANDOS: !hello, !contact, !admin, !ad, !badadmin";
// Room Initialization
var room = HBInit({ roomName: _roomName, playerName: _botName, public:_roomPublic, maxPlayers: _roomMaxPlayers });

// Game Functions
function GameMode1v1(){room.stopGame();setTimeout(function() {room.setCustomStadium(realSoccer);room.setScoreLimit(2);room.setTimeLimit(5);room.startGame();}, 200);};
function GameMode3v3(){room.stopGame();setTimeout(function() {room.setDefaultStadium("Big");room.setScoreLimit(3);room.setTimeLimit(3);room.startGame();}, 200);};

// Bot Functions
function SendMsg(msg, ignoreQuiteMode=true){if(!ignoreQuiteMode && _quiteMode){return;}room.sendChat(msg);};
function QuiteBot(){if(!_quiteMode){SendMsg(_stringQuiteModeOn,true);}else{SendMsg(_stringQuiteModeOff,true)}_quiteMode=!_quiteMode;}

// Player Functions
function Kick(name, msg){room.kickPlayer(GetPlayerByName(name).id,msg,false);}
function Ban(name, msg){room.kickPlayer(GetPlayerByName(name).id,msg,true);}
function MakeAdmin(player){if(GetAdmin()==null&&!IsBadAdmin(player.name)){room.setPlayerAdmin(player.id, true);SendMsg(player.name + _stringMakeAdminSuccess,true);_badAdminVoteCount=0;}else if(IsBadAdmin(player.name)){SendMsg(_stringMakeAdminErrorBadAdmin,false);}else{SendMsg(_stringMakeAdminErrorAdminExists,false);}}

// Utility Functions
function GetAllPlayers(){return room.getPlayerList().filter((player) => player.id != 0 );};
function GetPlayerByName(name){return room.getPlayerList().filter((player) => player.name == name)[0];};
function GetAllPlayersByName(name){return room.getPlayerList().filter((player) => player.name == name);};
function GetAdmin(){return room.getPlayerList().filter((player) => player.admin == true && player.id != 0)[0];};
function GetAllAdmins(){return room.getPlayerList().filter((player) => player.admin == true && player.id != 0);};

// Bad-Admin-System Functions
function IsBadAdmin(name){for(var i=0;i<_badAdmins.length;i++){if(_badAdmins[i].name == name){return true;}}return false;}
function DidVote(name){for(var i=0;i<_playersVoted.length;i++){if(_playersVoted[i].name == name){return true;}}return false;}
function VoteBadAdmin(player){if(DidVote(player.name)){SendMsg(_stringVoteOnDelay,false);return;}var currentAdmin=GetAdmin();if(currentAdmin==null){SendMsg(_stringVoteNoAdminFound,true);return;}if(++_badAdminVoteCount>_badAdminVoteThreshold-1){MakeBadAdmin();}else{SendMsg(_stringVoteStatus+_badAdminVoteCount+"/"+_badAdminVoteThreshold+" ["+currentAdmin.name+"]",true);}_playersVoted[_playersVoted.length]=player;setTimeout(function(){if(--_badAdminVoteCount<0){_badAdminVoteCount++;};for(var i=0;i<_playersVoted.length;i++){if(_playersVoted[i].name == player.name){_playersVoted.splice(i,1);}}}, _voteDelay);}
function MakeBadAdmin(){var currentAdmin = GetAdmin();_badAdmins[_badAdmins.length]=currentAdmin;room.setPlayerAdmin(currentAdmin.id, false);SendMsg(currentAdmin.name + _stringVoteSuccess,true);};

// Ban-Removal-System Functions
function RemoveBans(){SendMsg(_stringBanRemoval,false);room.clearBans();}

// Console Functions -- Usable Through Console...
function ChangeAdmin(name, makeOldAdminABadAdmin = false, removeAllAdmins = true){if(makeOldAdminABadAdmin){MakeBadAdmin();}if(removeAllAdmins){var admins=GetAllAdmins();for(var i=0;i<admins.length;i++){room.setPlayerAdmin(admins[i].id,false);}}else{room.setPlayerAdmin(GetAdmin().id,false);}room.setPlayerAdmin(GetPlayerByName(name)[0].id,true);SendMsg(_stringChangeAdminSuccess,true);}
function KickAll(msg = "Kicking All.", ban = false){var players=GetAllPlayers();for(var i=0;i<players.length;i++){room.kickPlayer(players[i].id,msg,ban);}}
function RemoveBadAdmin(name){for(var i=0;i<_badAdmins.length;i++){if(_badAdmins[i].name == name){_badAdmins.splice(i,1);SendMsg(name + _stringRemoveBadAdmin,true);return;}}}

// Events
room.onPlayerJoin = function(player) {
//Here goes the greeting you want
console.log(player.name_stringOnPlayerJoinRoomConsoleOutput); 
SendMsg(_stringOnPlayerJoinRoomWelcomeMessage + player.name + "!",false); if(GetAdmin()==null){SendMsg(_stringOnPlayerJoinNoAdminFound,true);}}
room.onPlayerLeave = function(player) {if(++_lastRoomLeavingsCount>_lastRoomLeavingsThreshold-1 && GetAdmin() != null){_lastRoomLeavingsCount=0;SendMsg(_stringOnLastRoomLeavingsTrigger);RemoveBans();MakeBadAdmin();}console.log(player.name + _stringOnPlayerLeaveRoomConsoleOutput);if(player.admin){SendMsg(_stringOnPlayerLeaveAdminLeave);}}
room.onTeamVictory = function(scores) {if(scores.red>scores.blue){SendMsg(_stringOnTeamVictoryRedWin,false);}else{SendMsg(_stringOnTeamVictoryBlueWin,false);}}
room.onPlayerChat = function(player, message) {console.log(player.name + ": " + message); if(player.admin){if(message == _stringOnChatCommandPause){room.pauseGame(!_gamePaused); _gamePaused = !_gamePaused;}else if(message==_stringOnChatCommandQuiteBot){QuiteBot();}else if(message == _stringOnChatCommandAdmin){room.setPlayerAdmin(player.id, !player.admin);}else if(message == _stringOnChatCommandStartGame){room.startGame();}else if(message==_stringOnChatCommandStopGame){room.stopGame();}else if(message==_stringOnChatCommandGameMode3v3){GameMode3v3();}else if(message==_stringOnChatCommandRematch){room.stopGame();room.startGame();}else if(message==_stringOnChatCommandGameMode1v1){GameMode1v1();}else if(message==_stringOnChatCommandRemoveBans){SendMsg(_stringOnChatCommandRemoveBansResponse,true);room.clearBans();}else if(message==_stringOnChatCommandCommands){SendMsg("[" + player.name + " - Admin] " + _stringOnChatCommandCommandsAdminResponse ,true);}} else {if(message==_stringOnChatCommandCommands){SendMsg("[" + player.name + " - Player] " + _stringOnChatCommandCommandsPlayerResponse,false);}else if(message==_stringOnChatCommandContact){SendMsg(_stringOnChatCommandContactResponse,false);}else if(message==_stringOnChatCommandHello){SendMsg(_stringOnChatCommandHelloResponsePreString + player.name + _stringOnChatCommandHelloResponseAfterString,false);}else if(message==_stringOnChatCommandAdvertise){SendMsg(_stringOnChatCommandAdvertiseResponse,false);}else if(message==_stringOnChatCommandVoteBadAdmin){VoteBadAdmin(player);}else if(message==_stringOnChatCommandAdmin){MakeAdmin(player);}}};

// Intervals
_removeBans = setInterval(function() {SendMsg(_stringOnBanRemoval,true);room.clearBans();},_removeBansInterval);
_lastRoomLeavings = setInterval(function() {_lastRoomLeavingsCount=0;}, _lastRoomLeavingsInterval);
Raamyy commented 6 years ago

I have added the stadium , time parts. The greeting part is already implemented in the given code. I will try to send you the function which makes losing team to spectator when i open my laptop.

GrandesLigasHaxBall commented 6 years ago

You are a genius! It has helped me alot. Thank you very much for taking the time to help me.

Raamyy commented 6 years ago

@PheuxHWN I'm Glad that this helped :smile: