takeraparterer

Untitled

Aug 29th, 2024
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1. import time
  2. import websocket
  3. import requests
  4. import json
  5. import random
  6. #╔═╗║╚╝
  7. r_asci = r"""
  8. ╔════════════╗
  9. ║ROOMBA V3 by║
  10. ║moth cult(M)║
  11. ║JOIN DISCORD║
  12. ║vBC7vHqcnn ║
  13. ╚════════════╝
  14. """
  15. roomba_x = 32
  16. roomba_y = 32
  17. def coord_in_spawn(x,y):
  18. if x<=16 and x>-33:
  19. if y<=8 and y>-19:# theres a off-by one error in the negative x and y, but it doesnt matter since i used > and not >=
  20. print('STOPPED BAD PATH!')
  21. return True
  22. def path_intersects_spawn(x,y,target_x,target_y):
  23. ints = False
  24. while x != target_x or y != target_y:
  25. if coord_in_spawn(x,y):
  26. ints=True
  27. return True
  28. if x > target_x:
  29. x -= 1
  30. if x < target_x:
  31. x += 1
  32. if y > target_y:
  33. y -= 1
  34. if y < target_y:
  35. y += 1
  36. if coord_in_spawn(x,y):
  37. ints=True
  38. return True
  39. return ints
  40. def get_dest():
  41. work = False
  42. while not work:
  43. target_x = random.randint(-128,128)
  44. target_y = random.randint(-64,64)
  45. print(target_x,target_y)
  46. if not path_intersects_spawn(roomba_x,roomba_y,target_x,target_y):
  47. work=True
  48. return target_x,target_y
  49. target_x,target_y = get_dest()
  50. home = False
  51. while True:
  52. try:
  53.  
  54. response = requests.post("https://www.yourworldoftext.com/").cookies.items()[0][1]
  55. print(response)
  56. headers = {
  57. "Cookie": f"csrftoken={response}"
  58. }
  59. max_ed_len = 16*8
  60. url = "wss://www.yourworldoftext.com/ws/"
  61. rid = 0
  62. l_id = 0
  63.  
  64. def build_edit(tx,ty,lx,ly,char):
  65. global l_id
  66. l_id += 1
  67. edit = []
  68. edit.append(tx)
  69. edit.append(ty)
  70. edit.append(ly)
  71. edit.append(lx)
  72. edit.append("CURRENT_TIME")
  73. edit.append(char)
  74. edit.append(l_id)
  75. return edit
  76. def build_json(edits):
  77. global rid
  78. rid += 1
  79. rjsn = {"kind":"write","request_id":rid,"edits":edits}
  80. return json.dumps(rjsn).replace("CURRENT_TIME",str(round(time.time()*1000)))
  81. edits = []
  82. xtemp = 0
  83. ws = websocket.create_connection(url,headers=headers)
  84. time.sleep(1)
  85. datar = ws.recv()
  86. print(datar)
  87. ws.send("""{"kind":"fetch","request_id":1,"fetchRectangles":[{"minX":-13,"minY":-3,"maxX":12,"maxY":-3},{"minX":-13,"minY":-2,"maxX":12,"maxY":-2},{"minX":-13,"minY":-1,"maxX":12,"maxY":-1},{"minX":-13,"minY":0,"maxX":12,"maxY":0},{"minX":-13,"minY":1,"maxX":12,"maxY":1},{"minX":-13,"minY":2,"maxX":12,"maxY":2}]}""")
  88. rid += 1
  89. datar = ws.recv()
  90. print(datar)
  91. ws.send("""{"kind":"position","request_id":2,"position":{"x":0,"y":0}}""")
  92. rid += 1
  93. gw = 16
  94. gh = 8
  95. def convert_to_grid(x,y):
  96. tilesx = x//gw
  97. tilesy = y//gh
  98. letterx = x%gw
  99. lettery = y%gh
  100. return tilesy, tilesx, letterx, lettery
  101. def place_tile(line,x,y):
  102. edits = []
  103. for letter in line:
  104. if letter != "X":
  105. tx,ty,lx,ly = convert_to_grid(x,y)
  106. edits.append(build_edit(tx,ty,lx,ly,letter))
  107. x += 1
  108. return edits
  109. offset = -20
  110. mult = r_asci
  111. while True:
  112. if rid > 250 and not home:
  113. print(1/0)
  114. if roomba_x == target_x and roomba_y == target_y:
  115. if home:
  116. print(1/0)
  117. target_x,target_y = get_dest()
  118. if roomba_x > target_x:
  119. roomba_x -= 1
  120. if roomba_x < target_x:
  121. roomba_x += 1
  122.  
  123. if roomba_y > target_y:
  124. roomba_y -= 1
  125. if roomba_y < target_y:
  126. roomba_y += 1
  127. print(roomba_x,roomba_y,target_x,target_y)
  128.  
  129.  
  130. big_edits = []
  131. gad = 0
  132. for stra in mult.split("\n"):
  133.  
  134.  
  135. edits = place_tile(stra,roomba_x,roomba_y+gad)
  136.  
  137. big_edits.extend(edits)
  138. gad += 1
  139. n = 8*16
  140. to_send = [big_edits[i:i+n] for i in range(0, len(big_edits), n)]
  141.  
  142. for s in to_send:
  143.  
  144. time.sleep(0.7)
  145. data = build_json(s)
  146. ws.send(data)
  147. time.sleep(0.8)
  148. datar = ws.recv()
  149. rid += 1
  150. except KeyboardInterrupt:
  151. if home:
  152. print(1/0)
  153. home = input("Home? (Y/N): ").lower()[0]
  154. if home == "y":
  155. target_x = 32
  156. target_y = 32
  157. home = True
  158. else:
  159. print(1/0)
  160. except ZeroDivisionError:
  161. if home:
  162. print(1/0)
  163. pass
  164. except:
  165. pass
Advertisement
Add Comment
Please, Sign In to add comment