{"ScriptPreparationCode":"\r\nconst lp = {\r\n \u0022info\u0022: {\r\n \u0022name\u0022: \u0022atest\u0022,\r\n \u0022groupId\u0022: \u0022A\u0022,\r\n \u0022lvl\u0022: 10,\r\n \u0022pmckd\u0022: 0.5,\r\n \u0022kd\u0022: 8,\r\n \u0022k\u0022: 100,\r\n \u0022hs\u0022: 50,\r\n \u0022faction\u0022: \u0022us\u0022\r\n },\r\n \u0022x\u0022: 0.5,\r\n \u0022y\u0022: 0.5,\r\n \u0022z\u0022: 0.5,\r\n \u0022hp\u0022: 100\r\n}\r\n\r\nfunction formatInfoText(infotext, player, noIcons) {\r\n const info = player.info\r\n const dx = player.x - lp.x\r\n const dy = player.y - lp.y\r\n const dz = player.z - lp.z\r\n return infotext.replaceAll(/\\$[a-z]\u002B/g, function(match) {\r\n if (match === \u0022$name\u0022) return info.name\r\n if (match === \u0022$group\u0022) return info.groupId\r\n if (match === \u0022$lvl\u0022) return info.lvl\r\n if (match === \u0022$pmckd\u0022) return info.pmckd\r\n if (match === \u0022$kd\u0022) return info.kd\r\n if (match === \u0022$hs\u0022) return (info.hs / info.k * 100).toFixed(0) \u002B \u0022%\u0022\r\n if (match === \u0022$faction\u0022) return info.faction\r\n if (match === \u0022$badge\u0022) return info.badge ? \u0060\u003Cimg src=\u0022${info.badge}\u0022 class=\u0022inlinepic\u0022\u003E\u0060 : \u0022\u0022\r\n if (match === \u0022$dist\u0022) return Math.round(Math.sqrt(dx * dx \u002B dy * dy \u002B dz * dz))\r\n if (match === \u0022$height\u0022) return Math.round(dz)\r\n if (match === \u0022$hp\u0022) return player.hp\r\n return \u0022undefined\u0022\r\n })\r\n}\r\n\r\nfunction formatInfoText2(infotext, player, noIcons) {\r\n const info = player.info\r\n const dx = player.x - lp.x\r\n const dy = player.y - lp.y\r\n const dz = player.z - lp.z\r\n return infotext\r\n \t.replace(\u0022$name\u0022, info.name)\r\n \t.replace(\u0022$group\u0022, info.groupId)\r\n \t.replace(\u0022$lvl\u0022, info.lvl)\r\n \t.replace(\u0022$pmckd\u0022, info.pmckd)\r\n \t.replace(\u0022$kd\u0022, info.kd)\r\n \t.replace(\u0022$hs\u0022, (info.hs / info.k * 100).toFixed(0) \u002B \u0022%\u0022)\r\n \t.replace(\u0022$faction\u0022, info.faction)\r\n \t.replace(\u0022$badge\u0022, info.badge ? \u0060\u003Cimg src=\u0022${info.badge}\u0022 class=\u0022inlinepic\u0022\u003E\u0060 : \u0022\u0022)\r\n \t.replace(\u0022$dist\u0022, Math.round(Math.sqrt(dx * dx \u002B dy * dy \u002B dz * dz)))\r\n \t.replace(\u0022$height\u0022, Math.round(dz))\r\n \t.replace(\u0022$hp\u0022, player.hp)\r\n}\r\n\r\n","TestCases":[{"Name":"a1","Code":"const p = {\r\n \u0022info\u0022: {\r\n \u0022name\u0022: \u0022atest\u0022,\r\n \u0022groupId\u0022: \u0022A\u0022,\r\n \u0022lvl\u0022: 10,\r\n \u0022pmckd\u0022: 0.5,\r\n \u0022kd\u0022: 8,\r\n \u0022k\u0022: 100,\r\n \u0022hs\u0022: 50,\r\n \u0022faction\u0022: \u0022us\u0022\r\n },\r\n \u0022x\u0022: 0.5,\r\n \u0022y\u0022: 0.5,\r\n \u0022z\u0022: 0.5,\r\n \u0022hp\u0022: 100\r\n}\r\n\r\nformatInfoText(\u0022$kd $name $hs\u0022, p, false)","IsDeferred":false},{"Name":"a2","Code":"const p = {\r\n \u0022info\u0022: {\r\n \u0022name\u0022: \u0022atest\u0022,\r\n \u0022groupId\u0022: \u0022A\u0022,\r\n \u0022lvl\u0022: 10,\r\n \u0022pmckd\u0022: 0.5,\r\n \u0022kd\u0022: 8,\r\n \u0022k\u0022: 100,\r\n \u0022hs\u0022: 50,\r\n \u0022faction\u0022: \u0022us\u0022\r\n },\r\n \u0022x\u0022: 0.5,\r\n \u0022y\u0022: 0.5,\r\n \u0022z\u0022: 0.5,\r\n \u0022hp\u0022: 100\r\n}\r\nformatInfoText2(\u0022$kd $name $hs\u0022, p, false)","IsDeferred":false}]}