scenexe.io hack tool zoom, hack menu, custom gui

scenexe.io hacks wich allow you to zoom in and out with cursor, custom themes and custom home menu

当前为 2023-08-12 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name scenexe.io hack tool zoom, hack menu, custom gui
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @license MIT
  6. // @description scenexe.io hacks wich allow you to zoom in and out with cursor, custom themes and custom home menu
  7. // @author ARX-M
  8. // @match https://scenexe.io
  9. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. CanvasRenderingContext2D.prototype._stroke = CanvasRenderingContext2D.prototype._stroke || CanvasRenderingContext2D.prototype.stroke;
  14. CanvasRenderingContext2D.prototype._fillText = CanvasRenderingContext2D.prototype._fillText || CanvasRenderingContext2D.prototype.fillText
  15. CanvasRenderingContext2D.prototype._strokeText = CanvasRenderingContext2D.prototype._strokeText || CanvasRenderingContext2D.prototype.strokeText
  16. CanvasRenderingContext2D.prototype.stroke = function() {
  17. this.shadowBlur = this.lineWidth / 2;// remove this line to have no blur
  18. this.shadowColor = this.strokeStyle; // remove this line to have no blur
  19. //tanks in genral
  20. this.fillStyle = "#54FF5F"
  21. this._stroke(...arguments)
  22. this.shadowBlur = 0; // remove this line for no blur
  23. };
  24. CanvasRenderingContext2D.prototype.fillText = function() {
  25. this._fillText(...arguments)
  26. this.shadowBlur = 0;
  27. };
  28. //names exc...
  29. CanvasRenderingContext2D.prototype.strokeText = function() {
  30. this.strokeStyle = "#B3178A"
  31. this._strokeText(...arguments);
  32. };
  33. 'use strict';
  34. const HTML = `
  35. <table style="width:100%" class="greenthing">
  36. <tr>
  37. <td><b style="text-shadow:1px 1px 0 #444">Scenexe.io menu thing?</td>
  38. <td>
  39. <img src="https://share.sketchpad.app/21/ab8-85dd-e9a387.png" alt="arras cool pic". style="width:200px;height:200px;" > <br>
  40. if you understand you do. if you dont... <a href="https://www.reddit.com/r/Diepio/comments/ot9rl3/fighter_plush/" target="_blank" style=”color: white; class=”linkboi”>Click here</a> The original ver. <a href="https://share.sketchpad.app/21/45b-afe5-45d32e.png" target="_blank" style=”color: white; class=”linkboi”>here</a> </tr>
  41. <tr>
  42. </div>
  43. <a>Builds</a>
  44. <p>same as diep.io builds? I aint sure</p><br>
  45. </div>
  46. </div>
  47.  
  48. <a>diep.io hybrid and slave. my fist image!</a>
  49. <img src="https://share.sketchpad.app/21/5be-db3a-ac1934.png" alt="diep cool pic". style="width:200px;height:100px;">
  50. </div>
  51. </tr>
  52. </table>
  53. `
  54. const styles = `
  55. a:link {
  56. color: red;
  57. background-color: transparent;
  58. text-decoration: none;
  59. }
  60. a:visited {
  61. color: pink;
  62. background-color: transparent;
  63. text-decoration: none;
  64. }
  65. a:hover {
  66. color: red;
  67. background-color: transparent;
  68. text-decoration: underline;
  69. }
  70. a:active {
  71. color: yellow;
  72. background-color: transparent;
  73. text-decoration: underline;
  74. }
  75. .greenthing {border: 1px solid red;
  76. padding-left:10px;
  77. padding-right:10px;
  78. border-collapse: collapse;
  79. overflow-y:auto;
  80. word-wrap:break-all;
  81. }
  82. div#greenthing > table, th, td {
  83. }
  84. div#greenthing > button {
  85. font-family: inherit;
  86. font-size: 1em;
  87. }
  88. }
  89. `
  90. const menuStyles = {
  91. position: "absolute",
  92. top: "25%",
  93. width:"50vw",
  94. height:"65vh",
  95. left: "25%",
  96. display: "none",
  97. "background-color": "rgba(50, 0, 50, 0)",
  98. "font-family":'"Montserrat","Verdana"'
  99. }
  100. // <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat">
  101. const menu = document.createElement("div")
  102. for (var prop in menuStyles) {
  103. menu.style[prop] = menuStyles[prop]
  104. }
  105. menu.innerHTML = HTML
  106. menu.id = "dt-menu"
  107. const styleElement = document.createElement("style")
  108. const font = document.createElement("link")
  109. font.rel = "stylesheet"
  110. font.href = "https://fonts.googleapis.com/css?family=Montserrat"
  111. styleElement.innerHTML = styles
  112. document.head.appendChild(styleElement)
  113. document.head.appendChild(font)
  114. document.body.appendChild(menu)
  115. const myEvent = function(event) {
  116. switch (event.key) {
  117. case "Escape":
  118. if (menu.style.display == "none") {
  119. menu.style.display = "block"
  120. console.log("Menu Enabled!")
  121. }
  122. else {
  123. menu.style.display = "none"
  124. console.log("Menu Disabled!")
  125. }
  126. break
  127. }
  128. }
  129. window.addEventListener("keydown",myEvent)
  130. console.log("scenxe menu loaded!")
  131.  
  132. let textNode = document.createTextNode(""); document.body.appendChild(textNode);
  133.  
  134. const xpElement = document.querySelector('#title') //XP header
  135. if (xpElement !== null) {
  136. xpElement.textContent = "<<==SCENEXE.IO==>>";
  137. }
  138. const pElement = document.querySelector('#changelog') //XP header
  139. if (pElement !== null) {
  140. pElement.textContent = "subscribe to my youtube: bon plays scenexe";
  141. }
  142. const Element = document.querySelector('#ads') //XP header
  143. if (Element !== null) {
  144. Element.textContent = "subscribe to my youtube: bon plays scenexe";
  145. }
  146. const lement = document.querySelector('#connecting-text') //XP header
  147. if (lement !== null) {
  148. lement.textContent = "nearly there!!";
  149. }
  150. const ement = document.querySelector('#play-button') //XP header
  151. if (ement !== null) {
  152. ement.textContent = "lets go!!";
  153. }
  154. const ment = document.querySelector('#full-connecting-text') //XP header
  155. if (ment !== null) {
  156. ment.textContent = "lets go!!";
  157. }
  158. const ent = document.querySelector('#server-select-title') //XP header
  159. if (ent !== null) {
  160. ent.textContent = "";
  161. }
  162. const nt = document.querySelector('#server-select-dropdown') //XP header
  163. if (nt !== null) {
  164. nt.textContent = "subscribe to bon plays scenexe!";
  165. }
  166. const t = document.querySelector('#button-feedback') //XP header
  167. if (t !== null) {
  168. t.textContent = "subscribe to bon plays scenexe!";
  169. }
  170. const to = document.querySelector('#popup-title') //XP header
  171. if (to !== null) {
  172. to.textContent = "thank you!";
  173. }
  174. 'use strict'
  175. const x=document.createElementNS('http://www.w3.org/1999/xhtml','div')
  176. x.setAttribute('onclick',`"use strict";(${()=>{
  177. const obj={'__proto__':null,'passive':true},rset=Reflect.set,p=Promise,fh=x=>{
  178. x.cameraSizeMultiplier*=zoom/10
  179. }
  180. let zoom=10
  181. //use removedEntities to not conflict with tank editor
  182. Object.defineProperty(Object.prototype,'removedEntities',{
  183. '__proto__':null,
  184. 'configurable':true,
  185. 'enumerable':false,
  186. 'set'(val){
  187. rset(obj,'removedEntities',val,this)
  188. p.resolve(this).then(fh)
  189. }
  190. })
  191. document.getElementById('game-canvas').addEventListener('wheel',event=>{
  192. if(event.deltaY>0)++zoom
  193. else if(9===--zoom)zoom=10
  194. },obj)
  195. document.body.addEventListener('keypress',event=>{
  196. const t=event.target.tagName
  197. if(t!=='INPUT'&&t!=='TEXTAREA')switch(event.key){
  198. case '+':
  199. ++zoom
  200. return
  201. case '-':
  202. if(9===--zoom)zoom=10
  203. }
  204. },obj)
  205. }})()`)
  206. x.click()
  207. document.getElementById('popup').hidden=false
  208. let p = 10
  209. p.speedMultiplier
  210.