Vanis.io MOD

Vez's auto respawn and skin changer

目前为 2020-09-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Vanis.io MOD
  3. // @namespace Vez's Vanis.io mod
  4. // @version 2.0
  5. // @description Vez's auto respawn and skin changer
  6. // @author vez
  7. // @match https://vanis.io/
  8. // @grant none
  9. // @connect https://raw.githubusercontent.com
  10. // @resource https://raw.githubusercontent.com/taufik-nurrohman/color-picker/master/color-picker.min.css
  11. // @run-at document-end
  12. // ==/UserScript==
  13.  
  14. const VEX = `
  15. <style>
  16.  
  17. .vex {
  18.  
  19. width : 350px;
  20. height: 800px;
  21.  
  22. position: fixed;
  23. top: calc(50% - 400px);
  24. right: -325px;
  25.  
  26. display: flex;
  27. flex-wrap : wrap;
  28. justify-content: center;
  29.  
  30. background: rgba(30, 30, 30, .75);
  31. border: 1px solid red;
  32.  
  33. box-shadow: 0 0 4px 2px #000;
  34.  
  35. font-family : Monospace;
  36.  
  37. z-index: 9999;
  38. }
  39.  
  40. .vex-button {
  41.  
  42. background: rgba(30, 30, 30, .75);
  43.  
  44. margin-left: 5px;
  45.  
  46. box-shadow: 0 0 1px 1px #000;
  47. border: 0px;
  48. outline: none;
  49.  
  50. color: #ffffff;
  51. }
  52.  
  53. .vex-button:hover {
  54.  
  55. color: tomato;
  56. }
  57.  
  58. .vex > .vex-hud {
  59.  
  60. width: 90%;
  61.  
  62. display : flex;
  63. flex-wrap: wrap;
  64. justify-content: center;
  65. }
  66.  
  67. .vex > .vex-hud > p {
  68.  
  69. width: 100%;
  70. text-align: center;
  71.  
  72. color : white;
  73. }
  74. .vex > .vex-hud > input {
  75.  
  76. width: 100%;
  77.  
  78. background : rgba(30, 30, 30, .65);
  79. border: 1px solid rgba(30, 30, 30, 1);
  80.  
  81. text-align: center;
  82. color: #ffffff;
  83.  
  84. outline : 0;
  85. box-shadow: none;
  86. }
  87.  
  88. .vex > .vex-skins {
  89.  
  90. width: 90%;
  91.  
  92. display : flex;
  93. flex-wrap: wrap;
  94. justify-content: center;
  95. }
  96.  
  97. .vex > .vex-skins > .vex-skins-item {
  98.  
  99. width: 100%;
  100. }
  101. .vex > .vex-skins > .vex-skins-item > p {
  102.  
  103. width: 100%;
  104. text-align: center;
  105.  
  106. color : white;
  107. }
  108.  
  109. .vex > .vex-skins > .vex-skins-item > input {
  110.  
  111. width: 100%;
  112.  
  113. background : rgba(30, 30, 30, .65);
  114. border: 1px solid rgba(30, 30, 30, 1);
  115.  
  116. text-align: center;
  117. color: #ffffff;
  118.  
  119. outline : 0;
  120. box-shadow: none;
  121. }
  122.  
  123. .vex > .vex-controls {
  124.  
  125. width: 90%;
  126.  
  127. display : flex;
  128. flex-wrap: wrap;
  129. justify-content: center;
  130. }
  131.  
  132. .vex > .vex-controls > p {
  133.  
  134. width: 100%;
  135. text-align: center;
  136.  
  137. color : white;
  138. }
  139.  
  140. .vex > .vex-controls > button {
  141.  
  142. width: 50%;
  143.  
  144. background : rgba(30, 30, 30, .65);
  145. border: 1px solid rgba(30, 30, 30, 1);
  146.  
  147. text-align: center;
  148. color: #ffffff;
  149.  
  150. outline : 0;
  151. box-shadow: none;
  152. }
  153.  
  154. #vex-r-start {}
  155. #vex-r-start.active {
  156.  
  157. color: lime;
  158. }
  159. #vex-r-start:hover {
  160.  
  161. color: lime;
  162. }
  163.  
  164. #vex-r-stop {}
  165. #vex-r-stop.active {
  166.  
  167. color: tomato;
  168. }
  169. #vex-r-stop:hover {
  170.  
  171. color: tomato;
  172. }
  173.  
  174. .vex > .vex-extras {
  175.  
  176. width: 90%;
  177.  
  178. display : flex;
  179. flex-wrap: wrap;
  180. justify-content: center;
  181.  
  182. text-align: center;
  183. color: white;
  184. }
  185. .vex > .vex-extras > .vex-extras-item {
  186.  
  187. width: 100%;
  188. height: 20px;
  189.  
  190. display: inline-flex;
  191.  
  192. overflow: hidden;
  193. }
  194. .vex > .vex-extras > .vex-extras-item > p {
  195.  
  196. width: 80%;
  197.  
  198. margin: 0px;
  199. text-aligasd
  200. color : white;
  201. }
  202.  
  203. .vex > .vex-extras > .vex-extras-item > input {
  204.  
  205. margin-left: 10px;
  206.  
  207. background : rgba(30, 30, 30, .65);
  208. border: 1px solid rgba(30, 30, 30, 1);
  209.  
  210. text-align: center;
  211. color: #ffffff;
  212.  
  213. outline : 0;
  214. box-shadow: none;
  215. }
  216.  
  217. .vex > .vex-binds {
  218.  
  219. width: 90%;
  220.  
  221. display : flex;
  222. flex-wrap: wrap;
  223. justify-content: center;
  224.  
  225. text-align: center;
  226. color: white;
  227. }
  228. .vex > .vex-binds > .vex-binds-item {
  229.  
  230. width: 100%;
  231. height: 20px;
  232.  
  233. display: inline-flex;
  234.  
  235. overflow: hidden;
  236. }
  237.  
  238. .vex > .vex-binds > .vex-binds-item > p {
  239.  
  240. width: 80%;
  241.  
  242. margin: 0px;
  243. text-align: center;
  244.  
  245. color : white;
  246. }
  247.  
  248. .vex > .vex-binds > .vex-binds-item > input {
  249.  
  250. background : rgba(30, 30, 30, .65);
  251. border: 1px solid rgba(30, 30, 30, 1);
  252.  
  253. text-align: center;
  254. color: #ffffff;
  255.  
  256. outline : 0;
  257. box-shadow: none;
  258. }
  259. </style>
  260.  
  261. <div class="vex">
  262. <div class="vex-hud">
  263. <p>HUD COLOR</p>
  264. <input id="vex-hc" type="text" placeholder="HEX code | Example: #101011">
  265. </div>
  266.  
  267. <div class="vex-skins">
  268.  
  269. <p>SKIN CHANGER</p>
  270.  
  271.  
  272. <div class="vex-skins-item">
  273. <p>SKIN_1</p>
  274. <input id="vex-s1" type="text" placeholder="SKIN_URL">
  275. </div>
  276.  
  277. <div class="vex-skins-item">
  278. <p>SKIN_2</p>
  279. <input id="vex-s2" type="text" placeholder="SKIN_URL">
  280. </div>
  281. <div class="vex-skins-item">
  282. <p>SKIN_3</p>
  283. <input id="vex-s3" type="text" placeholder="SKIN_URL">
  284. </div>
  285.  
  286. <div class="vex-skins-item">
  287. <p>SKIN_4</p>
  288. <input id="vex-s4" type="text" placeholder="SKIN_URL">
  289. </div>
  290. </div>
  291.  
  292. <div class="vex-controls">
  293.  
  294. <p>SKIN ROTATOR</p>
  295. <button id="vex-r-start">START</button>
  296. <button id="vex-r-stop">STOP</button>
  297. </div>
  298.  
  299. <div class="vex-extras">
  300. <p>EXTRAS</p>
  301. <div class="vex-extras-item">
  302. <p>AUTO_RESPAWN</p>
  303. <input id="vex-e-ar" type="checkbox">
  304. </div>
  305.  
  306. <div class="vex-extras-item">
  307. <p>SKIP_STATS</p>
  308. <input id="vex-e-ss" type="checkbox">
  309. </div>
  310.  
  311. </div>
  312.  
  313. <div class="credits">
  314.  
  315. <p>Credits</p>
  316. <p>Created by Vez#0020</p>
  317. </div>
  318. <p>https://discord.gg/gNnFvV9</p>
  319. </div>
  320. </div>
  321. </div>
  322.  
  323.  
  324. </div>
  325.  
  326.  
  327. </div>
  328. `;
  329.  
  330. const VEX_BTN = `
  331.  
  332. <button onclick="window.VEX_OVERLAY_TOGGLE()" class="vex-button"><i class="fa fa-gear"></i>Menu</button>
  333. `;
  334.  
  335. document.querySelectorAll("#vanis-io_300x250")[0].innerHTML += VEX;
  336. document.querySelectorAll(".social-container")[0].innerHTML += VEX_BTN;
  337.  
  338. setTimeout(()=>{
  339.  
  340. window._$ = selector => {
  341.  
  342. const nodes = document.querySelectorAll(selector);
  343.  
  344. return nodes.length == 1 ? nodes[0] : nodes;
  345. }
  346.  
  347. window.VEX_PLAYER_SOCKET = null;
  348. window.VEX_PLAYER_X = 0;
  349. window.VEX_PLAYER_Y = 0;
  350.  
  351. window.VEX_PLAYER_PACKET_SPAWN = [];
  352.  
  353. window.VEX_PLAYER_SPAWN = () => {
  354.  
  355. window.VEX_PLAYER_SOCKET._send(window.VEX_PLAYER_PACKET_SPAWN);
  356. };
  357.  
  358. window.VEX_PLAYER_MOVETO_X = 0;
  359. window.VEX_PLAYER_MOVETO_Y = 0;
  360.  
  361. window.VEX_PLAYER_MOVE_STOP = false;
  362. window.VEX_PLAYER_MOVE_TO = false;
  363.  
  364. window.VEX_PLAYER_MOVETO = (x,y) => {
  365.  
  366. const packet = new DataView(new ArrayBuffer(9));
  367. packet.setUint8(0, 16);
  368. packet.setInt32(1, x, true);
  369. packet.setInt32(5, y, true);
  370.  
  371. window.VEX_PLAYER_SOCKET._send(packet);
  372. }
  373.  
  374. window.VEX_PLAYER_SPLIT = () => {
  375.  
  376. const packet = new DataView(new ArrayBuffer(2));
  377. packet.setUint8(0, 17);
  378. packet.setUint8(1, window.VEX_PLAYER_X);
  379.  
  380. window.VEX_PLAYER_SOCKET._send(packet);
  381. }
  382.  
  383. window.VEX_OVERLAY_TOGGLE = () => {
  384.  
  385. const state = (VEX_DOM_OVERLAY.style.right == "-325px") ? false : true;
  386.  
  387. if(state){
  388.  
  389. VEX_OVERLAY_HIDE();
  390. return;
  391. }
  392.  
  393. VEX_OVERLAY_SHOW();
  394. };
  395.  
  396. let VEX_HUD_COLOR = "";
  397.  
  398. let VEX_SKIN1 = "";
  399. let VEX_SKIN2 = "";
  400. let VEX_SKIN3 = "";
  401. let VEX_SKIN4 = "";
  402.  
  403. let VEX_ROTATOR_STATE = false;
  404. const VEX_ROTATOR_DELAY = 1000;
  405.  
  406. let VEX_EXTRAS_AR = false;
  407. let VEX_EXTRAS_AR_INTERVAL = null;
  408.  
  409. let VEX_EXTRAS_SS = false;
  410. let VEX_EXTRAS_SS_INTERVAL = null;
  411.  
  412. const VEX_DOM_OVERLAY = _$(".vex");
  413.  
  414. const VEX_DOM_HC = _$("#vex-hc");
  415.  
  416. const VEX_DOM_SKIN_INPUT = _$("#skinurl");
  417. const VEX_DOM_SKIN1 = _$("#vex-s1");
  418. const VEX_DOM_SKIN2 = _$("#vex-s2");
  419. const VEX_DOM_SKIN3 = _$("#vex-s3");
  420. const VEX_DOM_SKIN4 = _$("#vex-s4");
  421.  
  422. const VEX_DOM_ROTATOR_START = _$("#vex-r-start");
  423. const VEX_DOM_ROTATOR_STOP = _$("#vex-r-stop");
  424.  
  425. const VEX_DOM_EXTRAS_AR = _$("#vex-e-ar");
  426. const VEX_DOM_EXTRAS_SS = _$("#vex-e-ss");
  427.  
  428. const VEX_HUD_COLOR_FUNC = () => {
  429.  
  430. for(const element of _$(".fade"))
  431. element.style.background = VEX_HUD_COLOR;
  432.  
  433. _$("#overlay").style.background = "radial-gradient("+VEX_HUD_COLOR+" 300px,"+VEX_HUD_COLOR+")";
  434. _$(".vex").style.background = VEX_HUD_COLOR;
  435.  
  436. if(_$(".discord").length !== 0)
  437. _$(".discord").style.background = VEX_HUD_COLOR;
  438.  
  439. //_$(".vex").style.boxShadow = "0 0 4px 2px " + VEX_HUD_COLOR;
  440. _$(".vex-button").style.background = VEX_HUD_COLOR;
  441.  
  442. if(_$(".progress-bar").length !== 0)
  443. _$(".progress-bar").style.background = `repeating-linear-gradient(-45deg,${VEX_HUD_COLOR},${VEX_HUD_COLOR} 40px,#1e1e1e 0,#1e1e1e 80px)`
  444.  
  445. if(_$(".fade-box")[0])
  446. _$(".fade-box")[0].style.background = VEX_HUD_COLOR;
  447.  
  448. if(_$(".fade-box")[1])
  449. _$(".fade-box")[1].style.background = VEX_HUD_COLOR;
  450. };
  451.  
  452. let VEX_ROTATOR_INTERVAL = null;
  453. let VEX_ROTATOR_CURRENT = 1;
  454.  
  455. const VEX_ROTATOR_FUNC_NEXT = () => {
  456.  
  457. if(VEX_ROTATOR_CURRENT < 5)
  458. VEX_ROTATOR_CURRENT += 1;
  459.  
  460. if(VEX_ROTATOR_CURRENT == 5)
  461. VEX_ROTATOR_CURRENT = 1;
  462.  
  463. VEX_DOM_SKIN_INPUT.value = localStorage.getItem("vex-s"+VEX_ROTATOR_CURRENT);
  464. };
  465.  
  466. const VEX_ROTATOR_FUNC_PREV = () => {
  467.  
  468. if(VEX_ROTATOR_CURRENT < 5)
  469. VEX_ROTATOR_CURRENT -= 1;
  470.  
  471. if(VEX_ROTATOR_CURRENT == 0)
  472. VEX_ROTATOR_CURRENT = 1;
  473.  
  474. VEX_DOM_SKIN_INPUT.value = localStorage.getItem("vex-s"+VEX_ROTATOR_CURRENT);
  475. };
  476.  
  477. const VEX_OVERLAY_SHOW = () => {
  478.  
  479. VEX_DOM_OVERLAY.style.right = "0px";
  480. };
  481.  
  482. const VEX_OVERLAY_HIDE = () => {
  483.  
  484. VEX_DOM_OVERLAY.style.right = "-325px";
  485. };
  486.  
  487. // VEX_DOM_OVERLAY.addEventListener('mouseenter', event => {
  488.  
  489. // VEX_OVERLAY_SHOW();
  490. // }, false);
  491.  
  492. // VEX_DOM_OVERLAY.addEventListener('mouseleave', event => {
  493.  
  494. // VEX_OVERLAY_HIDE();
  495. // }, false);
  496.  
  497. VEX_DOM_HC.addEventListener("change", event => {
  498.  
  499. if(event.target.value == localStorage.getItem("vex-hc"))
  500. return;
  501.  
  502. localStorage.setItem("vex-hc", event.target.value);
  503.  
  504. VEX_HUD_COLOR = localStorage.getItem("vex-hc");
  505.  
  506. VEX_HUD_COLOR_FUNC();
  507. }, false)
  508.  
  509. VEX_DOM_SKIN1.addEventListener("change", event => {
  510.  
  511. if(event.target.value == localStorage.getItem("vex-s1"))
  512. return;
  513.  
  514. localStorage.setItem("vex-s1", event.target.value);
  515.  
  516. VEX_SKIN1 = localStorage.getItem("vex-s1");
  517. }, false)
  518.  
  519. VEX_DOM_SKIN2.addEventListener("change", event => {
  520.  
  521. if(event.target.value == localStorage.getItem("vex-s1"))
  522. return;
  523.  
  524. localStorage.setItem("vex-s2", event.target.value);
  525.  
  526. VEX_SKIN2 = localStorage.getItem("vex-s2");
  527. }, false)
  528.  
  529. VEX_DOM_SKIN3.addEventListener("change", event => {
  530.  
  531. if(event.target.value == localStorage.getItem("vex-s1"))
  532. return;
  533.  
  534. localStorage.setItem("vex-s3", event.target.value);
  535.  
  536. VEX_SKIN3 = localStorage.getItem("vex-s3");
  537. }, false)
  538.  
  539. VEX_DOM_SKIN4.addEventListener("change", event => {
  540.  
  541. if(event.target.value == localStorage.getItem("vex-s1"))
  542. return;
  543.  
  544. localStorage.setItem("vex-s4", event.target.value);
  545.  
  546. VEX_SKIN4 = localStorage.getItem("vex-s4");
  547. }, false)
  548.  
  549. VEX_DOM_ROTATOR_START.addEventListener('click', event => {
  550.  
  551. VEX_ROTATOR_STATE = true;
  552.  
  553. VEX_DOM_ROTATOR_STOP.className = "";
  554. event.target.className += " active";
  555.  
  556. VEX_ROTATOR_CURRENT = 1;
  557. VEX_ROTATOR_INTERVAL = setInterval(VEX_ROTATOR_FUNC_NEXT, VEX_ROTATOR_DELAY);
  558. }, false);
  559.  
  560. VEX_DOM_ROTATOR_STOP.addEventListener('click', event => {
  561.  
  562. VEX_ROTATOR_STATE = false;
  563.  
  564. VEX_DOM_ROTATOR_START.className = "";
  565. event.target.className += " active";
  566.  
  567. VEX_ROTATOR_CURRENT = 1;
  568. clearInterval(VEX_ROTATOR_INTERVAL);
  569. }, false);
  570.  
  571.  
  572. VEX_DOM_EXTRAS_AR.addEventListener('change', event => {
  573.  
  574. const state = event.target.checked;
  575.  
  576. if(state == true){
  577.  
  578. if(VEX_DOM_EXTRAS_SS.checked == true)
  579. VEX_DOM_EXTRAS_SS.click();
  580.  
  581. VEX_EXTRAS_AR_INTERVAL = setInterval(()=>{
  582.  
  583. if(_$(".container")[2].style.display != "none"){
  584.  
  585. if(_$("button.continue").length === undefined && _$("button.continue").length !== 0){
  586.  
  587. _$("button.continue").click();
  588. _$("#overlay").style.display = "none";
  589.  
  590. _$("#overlay").dispatchEvent(new KeyboardEvent("keydown",{
  591.  
  592. altKey: false,
  593. bubbles: true,
  594. cancelBubble: false,
  595. cancelable: true,
  596. charCode: 0,
  597. code: "Escape",
  598. composed: true,
  599. ctrlKey: false,
  600. currentTarget: null,
  601. defaultPrevented: false,
  602. detail: 0,
  603. eventPhase: 0,
  604. isComposing: false,
  605. isTrusted: true,
  606. key: "Escape",
  607. keyCode: 27,
  608. location: 0,
  609. metaKey: false,
  610. path: [document.body, document, document, window],
  611. repeat: false,
  612. returnValue: true,
  613. shiftKey: false,
  614. sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}),
  615. srcElement: document.body,
  616. target: document.body,
  617. type: "keydown",
  618. view: window,
  619. which: 27
  620. }));
  621. _$("canvas#canvas").dispatchEvent(new KeyboardEvent("keydown",{
  622.  
  623. altKey: false,
  624. bubbles: true,
  625. cancelBubble: false,
  626. cancelable: true,
  627. charCode: 0,
  628. code: "Escape",
  629. composed: true,
  630. ctrlKey: false,
  631. currentTarget: null,
  632. defaultPrevented: false,
  633. detail: 0,
  634. eventPhase: 0,
  635. isComposing: false,
  636. isTrusted: true,
  637. key: "Escape",
  638. keyCode: 27,
  639. location: 0,
  640. metaKey: false,
  641. path: [document.body, document, document, window],
  642. repeat: false,
  643. returnValue: true,
  644. shiftKey: false,
  645. sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}),
  646. srcElement: document.body,
  647. target: document.body,
  648. type: "keydown",
  649. view: window,
  650. which: 27
  651. }))
  652.  
  653. _$("#overlay").dispatchEvent(new KeyboardEvent("keyup",{
  654.  
  655. altKey: false,
  656. bubbles: true,
  657. cancelBubble: false,
  658. cancelable: true,
  659. charCode: 0,
  660. code: "Escape",
  661. composed: true,
  662. ctrlKey: false,
  663. currentTarget: null,
  664. defaultPrevented: false,
  665. detail: 0,
  666. eventPhase: 0,
  667. isComposing: false,
  668. isTrusted: true,
  669. key: "Escape",
  670. keyCode: 27,
  671. location: 0,
  672. metaKey: false,
  673. path: [document.body, document, document, window],
  674. repeat: false,
  675. returnValue: true,
  676. shiftKey: false,
  677. sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}),
  678. srcElement: document.body,
  679. target: document.body,
  680. type: "keydown",
  681. view: window,
  682. which: 27
  683. }));
  684. _$("canvas#canvas").dispatchEvent(new KeyboardEvent("keyup",{
  685.  
  686. altKey: false,
  687. bubbles: true,
  688. cancelBubble: false,
  689. cancelable: true,
  690. charCode: 0,
  691. code: "Escape",
  692. composed: true,
  693. ctrlKey: false,
  694. currentTarget: null,
  695. defaultPrevented: false,
  696. detail: 0,
  697. eventPhase: 0,
  698. isComposing: false,
  699. isTrusted: true,
  700. key: "Escape",
  701. keyCode: 27,
  702. location: 0,
  703. metaKey: false,
  704. path: [document.body, document, document, window],
  705. repeat: false,
  706. returnValue: true,
  707. shiftKey: false,
  708. sourceCapabilities: new InputDeviceCapabilities({firesTouchEvents: false}),
  709. srcElement: document.body,
  710. target: document.body,
  711. type: "keydown",
  712. view: window,
  713. which: 27
  714. }))
  715.  
  716. window.VEX_PLAYER_SPAWN();
  717. }
  718. }
  719. }, 500);
  720.  
  721. return;
  722. }
  723.  
  724. clearInterval(VEX_EXTRAS_AR_INTERVAL);
  725. VEX_EXTRAS_AR_INTERVAL = null;
  726. }, false);
  727.  
  728. VEX_DOM_EXTRAS_SS.addEventListener('change', event => {
  729.  
  730. const state = event.target.checked;
  731.  
  732. if(state == true){
  733.  
  734. VEX_EXTRAS_SS_INTERVAL = setInterval(()=>{
  735.  
  736. if(_$(".container")[2].style.display != "none"){
  737.  
  738. if(_$("button.continue").length === undefined && _$("button.continue").length !== 0)
  739. _$("button.continue").click();
  740. }
  741. }, 500);
  742.  
  743. return;
  744. }
  745.  
  746. clearInterval(VEX_EXTRAS_SS_INTERVAL);
  747. VEX_EXTRAS_SS_INTERVAL = null;
  748. }, false);
  749.  
  750. const init = () => {
  751.  
  752. VEX_DOM_HC.value = localStorage.getItem("vex-hc") || "";
  753. VEX_HUD_COLOR = VEX_DOM_HC.value;
  754. VEX_HUD_COLOR_FUNC();
  755.  
  756. VEX_DOM_SKIN1.value = localStorage.getItem("vex-s1") || "";
  757. VEX_DOM_SKIN2.value = localStorage.getItem("vex-s2") || "";
  758. VEX_DOM_SKIN3.value = localStorage.getItem("vex-s3") || "";
  759. VEX_DOM_SKIN4.value = localStorage.getItem("vex-s4") || "";
  760.  
  761. VEX_DOM_ROTATOR_STOP.click();
  762.  
  763. VEX_DOM_EXTRAS_AR.checked = localStorage.getItem("vex-e-ar") || false;
  764. VEX_DOM_EXTRAS_SS.checked = localStorage.getItem("vex-e-ss") || false;
  765. };
  766.  
  767.  
  768. WebSocket.prototype._send = WebSocket.prototype.send
  769. WebSocket.prototype.send = function(data) {
  770.  
  771. if(data.byteLength > 9 && data[0] == 1)
  772. VEX_PLAYER_PACKET_SPAWN = data;
  773.  
  774. window.VEX_PLAYER_SOCKET = this;
  775.  
  776. if(data.byteLength == 9){
  777.  
  778. if(data.getUint8() == 16){
  779.  
  780. window.VEX_PLAYER_X = data.getInt32(1, true);
  781. window.VEX_PLAYER_Y = data.getInt32(5, true);
  782.  
  783. if(window.VEX_PLAYER_MOVE_STOP && window.VEX_PLAYER_MOVE_TO){
  784.  
  785. window.VEX_PLAYER_MOVETO(window.VEX_PLAYER_MOVETO_X, window.VEX_PLAYER_MOVETO_Y);
  786. return;
  787. }
  788.  
  789. if(window.VEX_PLAYER_MOVE_STOP)
  790. return;
  791. }
  792. }
  793.  
  794. this._send(data);
  795. };
  796.  
  797.  
  798. document.addEventListener('click', event => {
  799.  
  800. console.log(event)
  801. }, false)
  802.  
  803. setInterval(()=>{
  804.  
  805. VEX_HUD_COLOR_FUNC();
  806. }, 200);
  807. init();
  808.  
  809. }, 25);