Change FOV in Shell Shockers!

Implemented slider to change fov in shell shockers!

安装此脚本
作者推荐脚本

您可能也喜欢Mod Panel for Shell Shockers

安装此脚本
  1. // ==UserScript==
  2. // @name Change FOV in Shell Shockers!
  3. // @version 0.3
  4. // @description Implemented slider to change fov in shell shockers!
  5. // @match *://shellshock.io/*
  6. // @author A3+++
  7. // @run-at document-start
  8. // @grant none
  9. // @namespace https://gf.qytechs.cn/users/815159
  10. // ==/UserScript==
  11. (function () {
  12. const degToRad = (deg) => deg * (Math.PI / 180);
  13. let fovToRadian = 1.25;
  14. window.fixCamera = function (camera) {
  15. Object.defineProperty(camera, "fov", {
  16. get: () => fovToRadian || 1.25
  17. });
  18. }
  19. window.resetFov = function () {
  20. fovToRadian = 1.25;
  21. display.innerText = "71.62\u00B0";
  22. slider.value = "71.62\u00B0";
  23. }
  24. window.XMLHttpRequest = class extends window.XMLHttpRequest {
  25. constructor() {
  26. super(...arguments);
  27. }
  28. open() {
  29. if (arguments[1] && arguments[1].includes("js/shellshock.js"))this.scriptMatch = 1
  30. super.open(...arguments);
  31. }
  32. get response() {
  33. if (this.scriptMatch) {
  34. let responseText = super.response;
  35. let match = responseText.match(/.push\(([A-z]+)\),\w\w.maxZ=100/);
  36. if (match) responseText = responseText.replace(match[0], match[0] + `,window.fixCamera(${match[1]})`);
  37. return responseText;
  38. }
  39. return super.response;
  40. }
  41. };
  42. let html = [`<style>.slidecontainer{width:100%}.slider{-webkit-appearance:none;width:100%;height:15px;border-radius:5px;background:#d3d3d3;outline:0;opacity:.7;padding:5px;-webkit-transition:.2s;transition:opacity .2s}.slider:hover{opacity:1}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#04aa6d;cursor:pointer}.slider::-moz-range-thumb{width:25px;height:25px;border-radius:50%;background:#04aa6d;cursor:pointer}</style>`,
  43. `<div class="slidecontainer"><span id="fovDisplay"></span><input type="range" min="1" max="179.9" step="0.01" value="71.62" class="slider" id="fovSlider"></div>`,
  44. `<div class="btn-container"><button id='resetBtn' onclick='window.resetFov()' class="ss_button btn_small btn_pink bevel_yolk"><center>Reset FOV</center></button></div>`].join();
  45. let display, slider;
  46. let interval = setInterval(function () {
  47. let pauseButtons = document.getElementsByClassName("pause-game-weapon-select")[0];
  48. if (pauseButtons) {
  49. clearInterval(interval);
  50. let fovDiv = document.createElement("div");
  51. fovDiv.innerHTML = '<br>' + html;
  52. pauseButtons.appendChild(fovDiv);
  53. display = document.getElementById("fovDisplay");
  54. slider = document.getElementById("fovSlider");
  55. display.innerText = "71.62\u00B0";
  56. slider.oninput = function () {
  57. let newFov = parseFloat(this.value);
  58. display.innerText = newFov + "\u00B0";
  59. fovToRadian = degToRad(newFov);
  60. }
  61. }
  62. }, 1000);
  63. }())

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址