geoGuessr Resolver 7.0 (duels update)

Features: Automatically score 5000 Points | Score randomly between 4500 and 5000 points

当前为 2023-02-03 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name geoGuessr Resolver 7.0 (duels update)
  3. // @namespace http://tampermonkey.net/
  4. // @version 7.0
  5. // @description Features: Automatically score 5000 Points | Score randomly between 4500 and 5000 points
  6. // @author 0X69ED75
  7. // @match https://www.geoguessr.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=geoguessr.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12.  
  13. alert(` Thanks for using geoGuessr Resolver by 0x978.
  14. ============================================
  15. Please use the safer guess Option to avoid bans in competitive
  16. ============================================
  17. Controls (UPDATED!):
  18. '1': Place marker on a "safe" guess (4500 - 5000)
  19. '2': Place marker on a "perfect" guess (5000)
  20. '3': Get a description of the correct location.
  21. ----------------------------------------------------------`)
  22. async function v(e, r){
  23. let q = await fetch(`https://nominatim.openstreetmap.org/reverse?lat=${e}&lon=${r}&format=json`)
  24. return await q.json();
  25. }
  26. function qq() {
  27. let [p,m] = oi()
  28. v(p,m).then(x => {
  29. console.log(x)
  30. alert(`
  31. Country: ${x.address.country}
  32. County: ${x.address.county}
  33. City: ${x.address.city}
  34. Road: ${x.address.road}
  35. State: ${x.address.state}
  36. Postcode: ${x.address.postcode}
  37. Village/Suburb: ${(x.address.village||x.address.suburb)}
  38.  
  39. Postal Address: ${x.display_name}
  40. `) } );
  41.  
  42. }
  43. function km(h){
  44. let [qqw,th] = oi()
  45. if(document.getElementsByClassName("guess-map__canvas-container")[0] === undefined){mn([qqw,th]);return;}
  46. if(h){qqw += (Math.random() / 2);th += (Math.random() / 2);}
  47. let wc = document.getElementsByClassName("guess-map__canvas-container")[0]
  48. let vvr = Object.keys(wc)
  49. let er = vvr.find(b => b.startsWith("__reactFiber$"))
  50. let fp = wc[er].return.memoizedProps.onMarkerLocationChanged
  51. fp({lat:qqw,lng:th})}
  52. function mn([e,g]){
  53. let f = document.getElementsByClassName("region-map_map__7jxcD")[0]
  54. let lllk = Object.keys(f)
  55. let u = lllk.find(key => key.startsWith("__reactFiber$"))
  56. let fg = f[u].return.memoizedProps.onRegionSelected
  57. v(e,g).then(cx => {let countryCode = cx.address.country_code
  58. fg(countryCode)})
  59. }
  60. function oi(){
  61. let ww = document.getElementsByClassName("styles_root__3xbKq")[0]
  62. let e = Object.keys(ww)
  63. let u = e.find(key => key.startsWith("__reactFiber$"))
  64. let w = ww[u]
  65. let qwqa = w.return.memoizedProps.panorama.position
  66. return([qwqa.lat(),qwqa.lng()])
  67. }
  68. let h = (e) => {
  69. if(e.keyCode === 49){km(true)}
  70. if(e.keyCode === 50){km(false)}
  71. if(e.keyCode === 51){qq()}
  72. }
  73.  
  74. document.addEventListener("keydown", h);