def withdrawFromBank(template_): rsx, rsy = RS.position() bankWindow, x1, y1 = RS.getBankWindow() loc, w, h = Match.this(bankWindow,template_) for pt in zip(*loc[::-1]): #unpackaged pt x, y = pt #make btm coords btmx = x + x1 + w - 5 btmy = y + y1 + h - 5 #add bankwindow+RS coords to pt x += x1 + 5 y += y1 + 5 #gen random coords x = random.randint(x,btmx) y = random.randint(y,btmy) Mouse.moveClick(x, y, 3 ) #removing RS coords since they are added findOptionClick x -= rsx y -= rsy RS.findOptionClick(x,y,'withdraw14') break
def findherb(herb_object): #takes bank screenshot bank_screenshot, bankx, banky = RS.getBankWindow('hsv') # finds all grimmys first low, high = herb_object.herbdic['grimmy'] low = np.array(low) high = np.array(high) mask = cv2.inRange(bank_screenshot, low, high) # how big in pixels to remove noise kernel = np.ones((5,5), np.uint8) # removes noise #erosion = cv2.erode(mask, kernel, iterations = 1) # increases white dilation = cv2.dilate(mask, kernel, iterations = 1) _, contours, _ = cv2.findContours(dilation.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # fills in the contours in the mask with a rect for con in contours: x, y, w, h = cv2.boundingRect(con) cv2.rectangle(mask,(x,y),(x+w,y+h),(255,255,255),-1) # result of finding only grimmys in the hsv image res = cv2.bitwise_and(bank_screenshot,bank_screenshot, mask = mask.copy()) # finding the passed herb here based on color range low, high = herb_object.hsv_range low = np.array(low) high = np.array(high) herb_mask = cv2.inRange(res, low, high) ########### #debug line #cv2.imshow('debug.png', herb_mask) #cv2.waitKey(0) #return ########### _, contours, _ = cv2.findContours(herb_mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) contour_areas = {} # finds center of herb for con in contours: M = cv2.moments(con) #print(M) # gets center of object x,y = int(M["m10"] / M["m00"]), int(M["m01"] / M["m00"]) break if y == 1: return # makes coords relative to the window x += RSX + bankx y += RSY + banky # creates a list from -20 to 20 pixels = [i for i in range(-15,15)] # randomly adds value from pixels list x += random.choice(pixels) y += random.choice(pixels) # returns coords to right click and get options return x, y
def withdraw_from_bank(template_file, option): #pass template to function #option == to option in menu options when righ-clicked on item #checks to see wheater to add cur dir or not cwd = os.getcwd() if "/" not in template_file: template_file = cwd + "/imgs/" + template_file # print(template_file, "file in withraw_from_bank()") #creating bank window coords rsx, rsy = RS.position() #creates sceenshot object of bankwindow, bankWindow, x1, y1 = RS.getBankWindow() #SAVE for DEBUG #cv2.imwrite('debug_inBankLog.png',bankWindow) # This For loop runs through found matches and clicks or right-clicks #loc == coordinates found in match loc, w, h = Match.this(bankWindow, template_file) for pt in zip(*loc[::-1]): #goes through each found image #adds x1,y1 coords to pt to be relative to the window #pt = (x1+pt[0]+((w/2)/2), y1+pt[1]+((h/2)/2))# pt = (x1 + pt[0], y1 + pt[1]) # #Bottom-Right coords of found template btmX = pt[0] + w - ((w / 2) / 2) btmY = pt[1] + h - ((h / 2) / 2) # moving point inwards pt = (pt[0] + ((w / 2) / 2), pt[1] + ((h / 2) / 2)) #create random coords within the coords of the found template rx = random.randint(pt[0], btmX) ry = random.randint(pt[1], btmY) if option == 'click': Mouse.moveClick(rx, ry, 1) break else: #right clicks on given x,y coords Mouse.moveClick(rx, ry, 3) RandTime.randTime(0, 0, 0, 0, 0, 1) #Removing rsx,rsy coords from rx, ry #becuase RS.getOptions adds them in by default rx -= rsx ry -= rsy RS.findOptionClick(rx, ry, 'withdrawAll') break
def withdraw_from_bank(template_file, option):#pass template to function #option == to option in menu options when righ-clicked on item #checks to see wheater to add cur dir or not cwd = os.getcwd() if "/" not in template_file: template_file = cwd+"/imgs/"+template_file # print(template_file, "file in withraw_from_bank()") #creating bank window coords rsx,rsy = RS.position() #creates sceenshot object of bankwindow, bankWindow, x1, y1 = RS.getBankWindow() #SAVE for DEBUG #cv2.imwrite('debug_inBankLog.png',bankWindow) # This For loop runs through found matches and clicks or right-clicks #loc == coordinates found in match loc, w, h = Match.this(bankWindow, template_file) for pt in zip(*loc[::-1]):#goes through each found image #adds x1,y1 coords to pt to be relative to the window #pt = (x1+pt[0]+((w/2)/2), y1+pt[1]+((h/2)/2))# pt = (x1+pt[0], y1+pt[1])# #Bottom-Right coords of found template btmX = pt[0] + w - ((w/2)/2) btmY = pt[1] + h - ((h/2)/2) # moving point inwards pt = (pt[0]+((w/2)/2), pt[1]+((h/2)/2)) #create random coords within the coords of the found template rx = random.randint(pt[0],btmX) ry = random.randint(pt[1],btmY) if option == 'click': Mouse.moveClick(rx,ry,1) break else: #right clicks on given x,y coords Mouse.moveClick(rx,ry, 3) RandTime.randTime(0,0,0,0,0,1) #Removing rsx,rsy coords from rx, ry #becuase RS.getOptions adds them in by default rx -= rsx ry -= rsy RS.findOptionClick(rx,ry,'withdrawAll') break
def withdrawFromBank(template_): rsx, rsy = RS.position() bankWindow, x1, y1 = RS.getBankWindow() loc, w, h = Match.this(bankWindow, template_) for pt in zip(*loc[::-1]): #unpackaged pt x, y = pt #make btm coords btmx = x + x1 + w - 5 btmy = y + y1 + h - 5 #add bankwindow+RS coords to pt x += x1 + 5 y += y1 + 5 #gen random coords x = random.randint(x, btmx) y = random.randint(y, btmy) Mouse.moveClick(x, y, 3) #removing RS coords since they are added findOptionClick x -= rsx y -= rsy RS.findOptionClick(x, y, 'withdraw14') break