From 0f94b54b54f5b60b688e8ccaf78aad3f6645696e Mon Sep 17 00:00:00 2001 From: Boris Date: Sat, 10 May 2025 20:01:05 +0200 Subject: [PATCH] Update --- pictures/srtruck2.png | Bin 0 -> 1723 bytes trucknim.py | 76 +++++++++++++++++++++++++++--------------- 2 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 pictures/srtruck2.png diff --git a/pictures/srtruck2.png b/pictures/srtruck2.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb8bb34be3c785a9c13a3a403f6578fee7a0a6e GIT binary patch literal 1723 zcmV;s21NOZP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D22e>vK~zXfomNYa zTt^kIs(Wwu?Vj#&dNQ`>5kssH@&G3>i-=@_1QHS=3qWjOldO^jLP7-b4@fp7$|6=U zL=jdb_9iR=354VoLh=SsOcGm8CZ5d1L(hHGyNd7B?H>1xM*?x?o7?p~RrS?(&b|Ek z?|tX9XUf0-^ZMr`e=>~uiDfPX=W!4XOD2{|adI_mZHd#T_`NHPGp1eG`Z!GYSzwWd z#1La-aj#WZAHJumRju-}9QAsFzwrHUJoEJ@e*c%N@y4fOw`Khv=WxLK%xC0@dHA58 zPzWIyqh7d#H^u@LIZBQNJU52rF35S7=J{m=)U zXQIcJ1zQq5Q4X_7pAE;wiL5AQXXZpUII@geqCSD+$z7y&04;$?C+gA+W@5}me^{It zL-MkiQI?*`bLqUY5TZ16dbLNIFmnw-n`sIvkqe>A+ zYoB>&^YLEM>-G5`roZNI|M*v*XJ3RIw)M`iH)aL)M8gLTgVVmiPUk&UQUi-32`Tk+ zFo;t+7lK#Oj{1`f#1{Nd;S&GNPu_YUJc3DAKm6O3>sJa~GlWOexa90LIwHM~WC2 zlqw>!4HcZ!jW$vdTBRGM63iS2EyqFXR$`)+xUF=;*~$4YUwrjpejbGEw~91Fk%4TO zPCY*_8HY-#0#fF2n`AXBK#ds+wXUNPgK^K^v-?{xL+$h)h|;UZ$lA0uXmO@-ruC)` zbD-?Bggm@MFUs0m9UNMSG^@clP?-k#01i_Cr-YOiXRVd{YC1Jj2!DV6TtK~VnyG1S zs|p2RPuD0<(XOdlSy{t_u06aG1GE6Y@WWTmm0yAYK;Fh=Ga#A>Am@-lR5*TD_QXR)YVvtbOvvD z`{Z~t(Or;5&`8=djl~F1dKk`1>zfY2s=IoP@x}y$P*0x+%%b8vfBm_aA6xx0<(al! zpWH`LvKS_02b91P5l2{qVL(QbYE;8oJ{T2y`qt&?1%Y_&24Hb0T>@4fM%UO%2S~!5 zF5RIqs**$$#6NRbT9!+Ct#n(n5mDF3(6&LgaSoILicHzMIl9K#Fb$}vO_0_}8)V8Q zjP-2HWcJMCUpu{YhEh&otK+pk5?odu1wO5gv>XDaq*-}MUn?Oi%1mW@|ERAdy@N1; z*SxnuyJ#)IT!+PEasV6L9M%RigC`&x&vRtw6^2iV820q1`|>tW>AlKSm8pRl(T7pF z`Y0gf6iriAc}N8!!G{V()3ZN2ck1aBP4)U@okHo5CW_hbqS4gjtx+vA8S>0FfB&7^ zugo$5Oa+M9HrBP)Ec zz%M-a(z(^AkXWilZmw)XPsGgZJjWTj7MV+ihAu5Py5X9aqhd$AcX{XM{{cRjEjE!I R{pbJy002ovPDHLkV1hCrFZuug literal 0 HcmV?d00001 diff --git a/trucknim.py b/trucknim.py index 292b441..fca2064 100644 --- a/trucknim.py +++ b/trucknim.py @@ -42,7 +42,8 @@ shareBoxItemHeight = 93 shareBoxItemWidth = 510 shareBoxItemGap = 14 scrollGap = 44 -shareOffset= 10 +shareOffset= 40 +truckOffSet = 15 truckScreen__min_X = 683 truckScreen_max_X = 1200 @@ -61,6 +62,7 @@ urShard = cv2.imread(pictureFolder+'ur_shard.png', cv2.COLOR_RGB2BGR) urTruck1 = cv2.imread(pictureFolder+'urtruck1.png', cv2.COLOR_RGB2BGR) urTruck2 = cv2.imread(pictureFolder+'urtruck2.png', cv2.COLOR_RGB2BGR) srTruck1 = cv2.imread(pictureFolder+'srtruck1.png', cv2.COLOR_RGB2BGR) +srTruck2 = cv2.imread(pictureFolder+'srtruck2.png', cv2.COLOR_RGB2BGR) nameBox_Y = 770 nameBox_X = 796 @@ -102,7 +104,7 @@ def click(x,y,normal): time.sleep(mouse_timeout) def pointIsOutside(pt): - return pt[0] < truckScreen__min_X or pt[0] > truckScreen_max_X or pt[1] < truckScreen__min_X or pt[1] > truckScreen_max_Y + return pt[0] < truckScreen__min_X or pt[0] > truckScreen_max_X or pt[1] < truckScreen_min_Y or pt[1] > truckScreen_max_Y def pointInRange(pt, arr): for [x,y] in arr: @@ -120,11 +122,11 @@ def share_Truck(count,isServer): 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): + for j in range(0,1): + for i in range(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] + #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 : @@ -133,7 +135,7 @@ def share_Truck(count,isServer): if j == 0 and i == 1: clickShare(shareItem_X+shareOffset,shareItem_Y+shareOffset) continue - if j == 0 and i == 2: + if j == 0 and i == 2 and count > 3: clickShare(shareItem_X+shareOffset,shareItem_Y+shareOffset) continue continue @@ -142,19 +144,28 @@ def share_Truck(count,isServer): def addResToLoc(res,loc): resFlatten = res.flatten() indSort = np.argsort(resFlatten) + + indSort = indSort[::-1] indSort = indSort[0:10] + # for index in indSort: + # print(resFlatten[indSort]) + 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): + if pointInRange(n_pt,loc): continue - print(res[n_pt[1]][n_pt[0]]) + if 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) @@ -173,26 +184,34 @@ def analyse_static_Truck(foundTrucks): loc1 = [] loc2 = [] loc3 = [] + loc4 = [] 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) + res4 = cv2.matchTemplate(screenshot,srTruck2,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)) + t2 = CustomThread(target=addResToLoc,args=(res2,loc2)) + t3 = CustomThread(target=addResToLoc,args=(res3,loc3)) + t4 = CustomThread(target=addResToLoc,args=(res4,loc4)) t1.start() t2.start() t3.start() + t4.start() t1.join() t2.join() t3.join() + t4.join() addLocations(loc1,truckLocations) addLocations(loc2,truckLocations) addLocations(loc3,truckLocations) + addLocations(loc4,truckLocations) checkedLocations = [] @@ -203,8 +222,8 @@ def analyse_static_Truck(foundTrucks): checkedLocations.append(location) - truckLocation_X = location[0] - truckLocation_Y = location[1] + truckLocation_X = location[0] + truckOffSet + truckLocation_Y = location[1] + truckOffSet count = 0 click(truckLocation_X,truckLocation_Y,False) @@ -226,8 +245,9 @@ def analyse_static_Truck(foundTrucks): # cv2.imshow('Itembox', itembox) # cv2.waitKey(0) + if truckstring in foundTrucks: - return + continue foundTrucks.append(truckstring) @@ -247,11 +267,19 @@ def analyse_static_Truck(foundTrucks): if count > 2: #click(shareTruck_X,shareTruck_Y,True) share_Truck(count,False) + time.sleep(0.5) + keyboard.send('esc') + time.sleep(1) - click(refresh_X,refresh_Y,True) - time.sleep(2) + click(refresh_X,refresh_Y,True) + time.sleep(2) - +def on_press(key): + global break_program + if key == Key.f1: + print ('end pressed') + break_program = True + return False # hwndMain = win32gui.FindWindow(None, "Last War-Survival Game") @@ -272,19 +300,15 @@ 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() + +# with Listener(on_press=on_press) as listener: +# while(not break_program): +while True: + analyse_static_Truck(foundTrucks) + # listener.join()