From c49936e0944e5699422f45cebf2291042552f7df Mon Sep 17 00:00:00 2001 From: Boris Date: Sat, 10 May 2025 15:09:25 +0200 Subject: [PATCH] Cool --- pictures/srtruck1.png | Bin 0 -> 2434 bytes pictures/ur_shard.png | Bin 0 -> 3462 bytes pictures/urtruck1.png | Bin 0 -> 2602 bytes pictures/urtruck2.png | Bin 0 -> 2166 bytes trucknim.py | 291 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 291 insertions(+) create mode 100644 pictures/srtruck1.png create mode 100644 pictures/ur_shard.png create mode 100644 pictures/urtruck1.png create mode 100644 pictures/urtruck2.png create mode 100644 trucknim.py diff --git a/pictures/srtruck1.png b/pictures/srtruck1.png new file mode 100644 index 0000000000000000000000000000000000000000..882a57f8181a79c7c8317a7f6112a378e6aba1ac GIT binary patch literal 2434 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 truckScreen_max_X or pt[1] < truckScreen__min_X or pt[1] > truckScreen_max_Y + +def pointInRange(pt, arr): + for [x,y] in arr: + if x-rangeOffset <= pt[0] and pt[0] <= x+rangeOffset and y-rangeOffset <= pt[1] and pt[1] <= y+rangeOffset: + return True + return False + +def clickShare(x,y): + click(x,y,True) + click(confirmShare_X,confirmShare_Y,True) + click(shareTruck_X,shareTruck_Y,True) + +def share_Truck(count,isServer): + click(shareTruck_X,shareTruck_Y,True) + shareShot = cv2.cvtColor(np.array(pyautogui.screenshot()),cv2.COLOR_RGB2BGR) + # cv2.imshow('ShareShot',shareShot) + # cv2.waitKey(0) + for j in (0,1): + for i in (0,4): + shareItem_X = shareBox_X + shareItem_Y = shareBox_Y + i*(shareBoxItemHeight+shareBoxItemGap) + shareImage = shareShot[shareItem_Y:shareItem_Y+shareBoxItemHeight,shareItem_X:shareItem_X+shareBoxItemWidth] + # cv2.imshow('Shareitem', shareImage) + # cv2.waitKey(0) + if j == 0 and i == 0 and isServer and count < 4 : + clickShare(shareItem_X+shareOffset,shareItem_Y+shareOffset) + continue + if j == 0 and i == 1: + clickShare(shareItem_X+shareOffset,shareItem_Y+shareOffset) + continue + if j == 0 and i == 2: + clickShare(shareItem_X+shareOffset,shareItem_Y+shareOffset) + continue + continue + content = pytesseract.image_to_string(shareShot[shareItem_Y:shareItem_Y+shareBoxItemHeight,shareItem_X:shareItem_X+shareBoxItemWidth]) + +def addResToLoc(res,loc): + resFlatten = res.flatten() + indSort = np.argsort(resFlatten) + + indSort = indSort[::-1] + indSort = indSort[0:10] + + idx2d = np.unravel_index(indSort, res.shape) + + # idx2d = idx2d[::-1] + # idx2d = idx2d[0:10] + + for n_pt in zip(*idx2d[::-1]): + if pointInRange(n_pt,loc) or pointIsOutside(n_pt): + continue + print(res[n_pt[1]][n_pt[0]]) + if res[n_pt[1]][n_pt[0]] < threshold_truck: + continue + loc.append(n_pt) + if(len(loc) == 2): + break + +def addLocations(locX,loc): + for pt in locX: + loc.append(pt) + +def analyse_static_Truck(foundTrucks): + + screenshot = cv2.cvtColor(np.array(pyautogui.screenshot()),cv2.COLOR_RGB2BGR) + truckLocations = [] + + loc1 = [] + loc2 = [] + loc3 = [] + + res1 = cv2.matchTemplate(screenshot,urTruck1,cv2.TM_CCOEFF_NORMED) + res2 = cv2.matchTemplate(screenshot,urTruck2,cv2.TM_CCOEFF_NORMED) + res3 = cv2.matchTemplate(screenshot,srTruck1,cv2.TM_CCOEFF_NORMED) + + t1 = CustomThread(target=addResToLoc,args=(res1,loc1)) + t2 = CustomThread(target=addResToLoc,args=(res1,loc2)) + t3 = CustomThread(target=addResToLoc,args=(res1,loc3)) + + t1.start() + t2.start() + t3.start() + + t1.join() + t2.join() + t3.join() + + addLocations(loc1,truckLocations) + addLocations(loc2,truckLocations) + addLocations(loc3,truckLocations) + + checkedLocations = [] + + for location in truckLocations: + + if pointInRange(location,checkedLocations): + continue + + checkedLocations.append(location) + + truckLocation_X = location[0] + truckLocation_Y = location[1] + count = 0 + click(truckLocation_X,truckLocation_Y,False) + + + screenshot = cv2.cvtColor(np.array(pyautogui.screenshot()),cv2.COLOR_RGB2BGR) + itembox = screenshot[truckItemBox_Y:truckItemBox_Y+truckItemHeight,truckItemBox_X:truckItemBox_X+truckItemBoxWidth] + namebox = screenshot[nameBox_Y:nameBox_Y+nameBox_Height, nameBox_X:nameBox_X+nameBox_Width] + powerBox = screenshot[powerBox_Y:powerBox_Y+powerBox_Heigth, powerBox_X:powerBox_X+powerBox_Width] + + # cv2.imshow('Powerbox', powerBox) + # cv2.waitKey(0) + # cv2.imshow('Namebox', namebox) + # cv2.waitKey(0) + + name = pytesseract.image_to_string(namebox,config="--psm 7").strip() + power = pytesseract.image_to_string(powerBox,config="--psm 7").strip() + truckstring = name + ';' + power + print(truckstring) + + # cv2.imshow('Itembox', itembox) + # cv2.waitKey(0) + if truckstring in foundTrucks: + return + + foundTrucks.append(truckstring) + + for i in range(0,7): + truckItem_X = i*(truckItemWidth+truckItemGap) + truckItem_Y = 0 + item = itembox[truckItem_Y:truckItem_Y+truckItemHeight, truckItem_X:truckItem_X+truckItemWidth] + # cv2.imshow('Item', item) + # cv2.waitKey(0) + res = cv2.matchTemplate(item,urShard,cv2.TM_CCOEFF_NORMED) + loc = np.where( res >= threshold_urShard) + for pt in zip(*loc[::-1]): + count += 1 + + print(count) + + if count > 2: + #click(shareTruck_X,shareTruck_Y,True) + share_Truck(count,False) + + click(refresh_X,refresh_Y,True) + time.sleep(2) + + + + +# hwndMain = win32gui.FindWindow(None, "Last War-Survival Game") +# rect = win32gui.GetWindowRect(hwndMain) +# x = rect[0] +# y = rect[1] +# w = rect[2] - x +# h = rect[3] - y +# print("Window %s:" % win32gui.GetWindowText(hwndMain)) +# print("\tLocation: (%d, %d)" % (x, y)) +# print("\t Size: (%d, %d)" % (w, h)) + +foundTrucks = [] +win = pygetwindow.getWindowsWithTitle('Last War-Survival Game')[0] +win.activate() +win.moveTo(orgX,orgY) +win.size = (orgWidth, orgHeight) + +time.sleep(2) +break_program = False +def on_press(key): + global break_program + if key == Key.f1: + print ('end pressed') + break_program = True + return False + + + +with Listener(on_press=on_press) as listener: + while(not break_program): + analyse_static_Truck(foundTrucks) + listener.join() + + + + \ No newline at end of file