Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import websocket
- import requests
- import json
- import random
- #╔═╗║╚╝
- r_asci = r"""
- ╔════════════╗
- ║ROOMBA V3 by║
- ║moth cult(M)║
- ║JOIN DISCORD║
- ║vBC7vHqcnn ║
- ╚════════════╝
- """
- roomba_x = 32
- roomba_y = 32
- def coord_in_spawn(x,y):
- if x<=16 and x>-33:
- 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 >=
- print('STOPPED BAD PATH!')
- return True
- def path_intersects_spawn(x,y,target_x,target_y):
- ints = False
- while x != target_x or y != target_y:
- if coord_in_spawn(x,y):
- ints=True
- return True
- if x > target_x:
- x -= 1
- if x < target_x:
- x += 1
- if y > target_y:
- y -= 1
- if y < target_y:
- y += 1
- if coord_in_spawn(x,y):
- ints=True
- return True
- return ints
- def get_dest():
- work = False
- while not work:
- target_x = random.randint(-128,128)
- target_y = random.randint(-64,64)
- print(target_x,target_y)
- if not path_intersects_spawn(roomba_x,roomba_y,target_x,target_y):
- work=True
- return target_x,target_y
- target_x,target_y = get_dest()
- home = False
- while True:
- try:
- response = requests.post("https://www.yourworldoftext.com/").cookies.items()[0][1]
- print(response)
- headers = {
- "Cookie": f"csrftoken={response}"
- }
- max_ed_len = 16*8
- url = "wss://www.yourworldoftext.com/ws/"
- rid = 0
- l_id = 0
- def build_edit(tx,ty,lx,ly,char):
- global l_id
- l_id += 1
- edit = []
- edit.append(tx)
- edit.append(ty)
- edit.append(ly)
- edit.append(lx)
- edit.append("CURRENT_TIME")
- edit.append(char)
- edit.append(l_id)
- return edit
- def build_json(edits):
- global rid
- rid += 1
- rjsn = {"kind":"write","request_id":rid,"edits":edits}
- return json.dumps(rjsn).replace("CURRENT_TIME",str(round(time.time()*1000)))
- edits = []
- xtemp = 0
- ws = websocket.create_connection(url,headers=headers)
- time.sleep(1)
- datar = ws.recv()
- print(datar)
- 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}]}""")
- rid += 1
- datar = ws.recv()
- print(datar)
- ws.send("""{"kind":"position","request_id":2,"position":{"x":0,"y":0}}""")
- rid += 1
- gw = 16
- gh = 8
- def convert_to_grid(x,y):
- tilesx = x//gw
- tilesy = y//gh
- letterx = x%gw
- lettery = y%gh
- return tilesy, tilesx, letterx, lettery
- def place_tile(line,x,y):
- edits = []
- for letter in line:
- if letter != "X":
- tx,ty,lx,ly = convert_to_grid(x,y)
- edits.append(build_edit(tx,ty,lx,ly,letter))
- x += 1
- return edits
- offset = -20
- mult = r_asci
- while True:
- if rid > 250 and not home:
- print(1/0)
- if roomba_x == target_x and roomba_y == target_y:
- if home:
- print(1/0)
- target_x,target_y = get_dest()
- if roomba_x > target_x:
- roomba_x -= 1
- if roomba_x < target_x:
- roomba_x += 1
- if roomba_y > target_y:
- roomba_y -= 1
- if roomba_y < target_y:
- roomba_y += 1
- print(roomba_x,roomba_y,target_x,target_y)
- big_edits = []
- gad = 0
- for stra in mult.split("\n"):
- edits = place_tile(stra,roomba_x,roomba_y+gad)
- big_edits.extend(edits)
- gad += 1
- n = 8*16
- to_send = [big_edits[i:i+n] for i in range(0, len(big_edits), n)]
- for s in to_send:
- time.sleep(0.7)
- data = build_json(s)
- ws.send(data)
- time.sleep(0.8)
- datar = ws.recv()
- rid += 1
- except KeyboardInterrupt:
- if home:
- print(1/0)
- home = input("Home? (Y/N): ").lower()[0]
- if home == "y":
- target_x = 32
- target_y = 32
- home = True
- else:
- print(1/0)
- except ZeroDivisionError:
- if home:
- print(1/0)
- pass
- except:
- pass
Advertisement
Add Comment
Please, Sign In to add comment