|
16 | 16 | //3.#.#-release for release |
17 | 17 | //this ensures that each version of the script is counted as different |
18 | 18 |
|
19 | | -// @version 3.3.0-release |
| 19 | +// @version 3.3.1-release |
20 | 20 |
|
21 | 21 | // @match *://shellshock.io/* |
22 | 22 | // @match *://algebra.best/* |
|
75 | 75 | (function () { |
76 | 76 | //script info |
77 | 77 | const name="StateFarm Client"; |
78 | | - const version="3.3.0"; |
| 78 | + const version="3.3.1"; |
79 | 79 | //startup sequence |
80 | 80 | const startUp=function () { |
81 | 81 | mainLoop() |
|
320 | 320 | initModule({ location: tp.aimbotFolder, title: "1 Kill", storeAs: "oneKill", bindLocation: tp.combatTab.pages[1],}); |
321 | 321 | initModule({ location: tp.aimbotFolder, title: "LineOfSight", storeAs: "lineOfSight", bindLocation: tp.combatTab.pages[1],}); |
322 | 322 | tp.aimbotFolder.addSeparator(); |
| 323 | + initModule({ location: tp.aimbotFolder, title: "MaxAngle", storeAs: "aimbotMaxAngle", bindLocation: tp.combatTab.pages[1], slider: {min: 0, max: Math.PI*2, step: 0.05}, defaultValue: Math.PI*2,}); |
323 | 324 | initModule({ location: tp.aimbotFolder, title: "AntiSnap", storeAs: "aimbotAntiSnap", bindLocation: tp.combatTab.pages[1], slider: {min: 0, max: 0.99, step: 0.01}, defaultValue: 0,}); |
324 | 325 | initModule({ location: tp.aimbotFolder, title: "AntiSneak", storeAs: "antiSneak", bindLocation: tp.combatTab.pages[1], slider: {min: 0, max: 5, step: 0.2}, defaultValue: 0,}); |
325 | 326 | tp.aimbotFolder.addSeparator(); |
|
364 | 365 | tp.renderTab.pages[0].addSeparator(); |
365 | 366 | initModule({ location: tp.renderTab.pages[0], title: "Show Bloom", storeAs: "revealBloom", bindLocation: tp.renderTab.pages[1],}); |
366 | 367 | initModule({ location: tp.renderTab.pages[0], title: "Show LOS", storeAs: "showLOS", bindLocation: tp.renderTab.pages[1],}); |
| 368 | + initModule({ location: tp.renderTab.pages[0], title: "Leaderboard", storeAs: "highlightLeaderboard", bindLocation: tp.renderTab.pages[1],}); |
367 | 369 | tp.renderTab.pages[0].addSeparator(); |
368 | 370 | initModule({ location: tp.renderTab.pages[0], title: "Co-ords", storeAs: "showCoordinates", bindLocation: tp.renderTab.pages[1],}); |
369 | 371 | initModule({ location: tp.renderTab.pages[0], title: "HP Display", storeAs: "playerStats", bindLocation: tp.renderTab.pages[1],}); |
|
449 | 451 | tp.botParamsFolder.addSeparator(); |
450 | 452 | initModule({ location: tp.botParamsFolder, title: "DoPlay", storeAs: "botRespawn", bindLocation: tp.bottingTab.pages[1],}); |
451 | 453 | initModule({ location: tp.botParamsFolder, title: "DoSeizure", storeAs: "botSeizure", bindLocation: tp.bottingTab.pages[1],}); |
| 454 | + tp.botParamsFolder.addSeparator(); |
| 455 | + initModule({ location: tp.botParamsFolder, title: "DoTallChat", storeAs: "botTallChat", bindLocation: tp.bottingTab.pages[1],}); |
452 | 456 | initModule({ location: tp.botParamsFolder, title: "DoMock", storeAs: "botMock", bindLocation: tp.bottingTab.pages[1],}); |
| 457 | + initModule({ location: tp.botParamsFolder, title: "DoAutoEZ", storeAs: "botAutoEZ", bindLocation: tp.bottingTab.pages[1],}); |
| 458 | + initModule({ location: tp.botParamsFolder, title: "DoChAccuse", storeAs: "botCheatAccuse", bindLocation: tp.bottingTab.pages[1],}); |
453 | 459 | tp.botParamsFolder.addSeparator(); |
454 | 460 | initModule({ location: tp.botParamsFolder, title: "DoMove", storeAs: "botAutoMove", bindLocation: tp.bottingTab.pages[1],}); |
455 | 461 | initModule({ location: tp.botParamsFolder, title: "DoShoot", storeAs: "botAutoShoot", bindLocation: tp.bottingTab.pages[1],}); |
|
938 | 944 | ]; |
939 | 945 | return resultRgb; |
940 | 946 | }; |
941 | | - const distancePlayers = function (MYPLAYER,player) { |
942 | | - return ss.BABYLONJS.Vector3.Distance(MYPLAYER,player); //pythagoras' theorem in 3 dimensions. no one owns maths, zert. |
| 947 | + const distancePlayers = function (ss,player,yMultiplier) { |
| 948 | + yMultiplier=yMultiplier||1; |
| 949 | + let vector = getDirectionVectorPlayer(ss,player); |
| 950 | + return Math.hypot(vector.x,vector.y*yMultiplier,vector.z); //pythagoras' theorem in 3 dimensions. no one owns maths, zert. |
943 | 951 | }; |
944 | 952 | const setPrecision = function (value) { return Math.round(value * 8192) / 8192 }; //required precision |
945 | 953 | const calculateYaw = function (pos) { |
|
1477 | 1485 | return newPos; |
1478 | 1486 | }; |
1479 | 1487 | const getLineOfSight = function(ss,pos) { //returns true if no wall collisions |
1480 | | - let distance=distancePlayers(ss.MYPLAYER,pos); |
| 1488 | + let distance=distancePlayers(ss,pos); |
1481 | 1489 | let dir = { yaw: ss.MYPLAYER.yaw, pitch: ss.MYPLAYER.pitch }; |
1482 | 1490 | if (extract("antiBloom")) { dir=applyBloom(dir,-1) }; |
1483 | 1491 |
|
|
1790 | 1798 | addParam("autoFireType",1); |
1791 | 1799 | addParam("enableSeizureX",extract("botSeizure")); |
1792 | 1800 | addParam("enableSeizureY",extract("botSeizure")); |
| 1801 | + addParam("autoEZ",extract("botAutoEZ")); |
| 1802 | + addParam("cheatAccuse",extract("botCheatAccuse")); |
| 1803 | + addParam("tallChat",extract("botTallChat")); |
1793 | 1804 |
|
1794 | 1805 | if (extract("botAimbot")) { //add antisneak |
1795 | 1806 | addParam("aimbotTargeting",1); |
|
1921 | 1932 | } else if (extract("enableBlacklistTracers") && extract("blacklistESPType")=="highlight" && isPartialMatch(blacklistPlayers,player.name) ) { |
1922 | 1933 | color=hexToRgb(extract("blacklistColor")); |
1923 | 1934 | } else if ( tracersType=="proximity" ) { |
1924 | | - const distance = distancePlayers(ss.MYPLAYER,player); |
| 1935 | + const distance = distancePlayers(ss,player); |
1925 | 1936 | if (distance < extract("tracersColor1to2")) { //fade between first set |
1926 | 1937 | progress=(distance/extract("tracersColor1to2")); |
1927 | 1938 | color=fadeBetweenColors(extract("tracersColor1"),extract("tracersColor2"),progress); |
|
2120 | 2131 | let isLineOfSight=false; |
2121 | 2132 | if (extract("showLOS")) { |
2122 | 2133 | const player=currentlyTargeting||playerLookingAt||undefined |
2123 | | - if (player) { |
| 2134 | + if (player && player.playing) { |
2124 | 2135 | isLineOfSight=getLineOfSight(ss,player); |
2125 | 2136 | }; |
2126 | 2137 | }; |
|
2180 | 2191 | const whitelisted=(!extract("enableWhitelistAimbot")||extract("enableWhitelistAimbot")&&isPartialMatch(whitelistPlayers,player.name)); |
2181 | 2192 | const blacklisted=(extract("enableBlacklistAimbot")&&isPartialMatch(blacklistPlayers,player.name)); |
2182 | 2193 | const passedLists=whitelisted&&(!blacklisted); |
2183 | | - player.distance = distancePlayers(ss.MYPLAYER,player); |
| 2194 | + player.distance=distancePlayers(ss,player); |
| 2195 | + player.adjustedDistance=distancePlayers(ss,player,2); |
2184 | 2196 | const directionVector=getDirectionVectorPlayer(ss,player); |
2185 | 2197 | player.angleDiff=getAngularDifference(ss.MYPLAYER, {yaw: calculateYaw(directionVector), pitch: calculatePitch(directionVector)}); |
2186 | 2198 |
|
|
2192 | 2204 | if (passedLists && ((!ss.MYPLAYER.team)||( player.team!==ss.MYPLAYER.team))) { //is an an enemy |
2193 | 2205 | if (extract("aimbot") && (extract("aimbotRightClick") ? isRightButtonDown : true) && ss.MYPLAYER.playing) { //is doing aimbot |
2194 | 2206 | if (selectNewTarget) { |
2195 | | - if (player.distance<enemyMinimumValue) { //for antisneak, not targeting |
2196 | | - enemyMinimumDistance = player.distance; |
| 2207 | + if (player.adjustedDistance<enemyMinimumValue) { //for antisneak, not targeting |
| 2208 | + enemyMinimumDistance = player.adjustedDistance; |
2197 | 2209 | enemyNearest = player; |
2198 | 2210 | }; |
2199 | 2211 | if (targetType=="nearest") { |
2200 | | - if ( player.distance < enemyMinimumValue && (!extract("lineOfSight") || getLineOfSight(ss,player))) { |
2201 | | - enemyMinimumValue = player.distance; |
| 2212 | + if ( player.adjustedDistance < enemyMinimumValue && (!extract("lineOfSight") || getLineOfSight(ss,player))) { |
| 2213 | + enemyMinimumValue = player.adjustedDistance; |
2202 | 2214 | currentlyTargeting = player; |
2203 | 2215 | }; |
2204 | 2216 | } else if (targetType=="pointingat") { |
|
2216 | 2228 | if (extract("aimbot") && (extract("aimbotRightClick") ? isRightButtonDown : true) && ss.MYPLAYER.playing) { |
2217 | 2229 | if ( currentlyTargeting && currentlyTargeting.playing ) { //found a target |
2218 | 2230 | didAimbot=true |
2219 | | - if (!extract("silentAimbot")) { |
2220 | | - const distanceBetweenPlayers = distancePlayers(ss.MYPLAYER,currentlyTargeting); |
| 2231 | + if ((!extract("silentAimbot")) && (targetingComplete||(extract("aimbotMaxAngle")>currentlyTargeting?.angleDiff))) { |
| 2232 | + const distanceBetweenPlayers = distancePlayers(ss,currentlyTargeting); |
2221 | 2233 |
|
2222 | 2234 | const aimbot=getAimbot(ss,currentlyTargeting); |
2223 | 2235 |
|
|
2274 | 2286 | ss.MYPLAYER.pitch+=extract("amountSeizureY") |
2275 | 2287 | }; |
2276 | 2288 | }; |
2277 | | - highlightCurrentlyTargeting(ss, currentlyTargeting, didAimbot); |
| 2289 | + highlightCurrentlyTargeting(ss, currentlyTargeting, (extract("highlightLeaderboard")) ? didAimbot : false); |
2278 | 2290 | if (extract("upsideDown")) { //sorta useless |
2279 | 2291 | if (ss.MYPLAYER.pitch<1.5 && ss.MYPLAYER.pitch>-1.5) { |
2280 | 2292 | ss.MYPLAYER.pitch=Math.PI; |
|
0 commit comments