From 0a3321f649736710583d34cf83ec4c0153c52e29 Mon Sep 17 00:00:00 2001 From: mackerel-12138 Date: Mon, 17 Apr 2023 23:08:53 +0800 Subject: [PATCH] =?UTF-8?q?UI=E8=B0=83=E6=95=B4=20=E5=9C=B0=E4=B8=8B?= =?UTF-8?q?=E5=9F=8E=E5=95=86=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AutoPcr_py/AutoPcr4.0.py | 74 +++++++++++++++++++++++++---- AutoPcr_py/AutoPcr4.0_GUI.py | 21 ++++---- AutoPcr_py/config.ini | 28 ++++++----- AutoPcr_py/img/huodong/fkhd.png | Bin 0 -> 3004 bytes AutoPcr_py/img/huodong/jqhd1-5.png | Bin 4253 -> 1116 bytes AutoPcr_py/img/other/btn.png | Bin 0 -> 3549 bytes AutoPcr_py/img/other/lunata.png | Bin 0 -> 8516 bytes AutoPcr_py/img/shop/dxc.png | Bin 0 -> 2778 bytes 8 files changed, 94 insertions(+), 29 deletions(-) create mode 100644 AutoPcr_py/img/huodong/fkhd.png create mode 100644 AutoPcr_py/img/other/btn.png create mode 100644 AutoPcr_py/img/other/lunata.png create mode 100644 AutoPcr_py/img/shop/dxc.png diff --git a/AutoPcr_py/AutoPcr4.0.py b/AutoPcr_py/AutoPcr4.0.py index b4c332d..5d0184a 100644 --- a/AutoPcr_py/AutoPcr4.0.py +++ b/AutoPcr_py/AutoPcr4.0.py @@ -75,6 +75,8 @@ def GetFullPath(pngName): dxcDropKey = 'dxcDrop' mnqIndexKey = 'mnqDrop' buyExpNumKey = 'buyExpNumDrop' +buyDxcNumKey = 'buyDxcNumDrop' +buyDxcRowKey = 'buyDxcRowDrop' dxcDropValue = ["炸脖龙", "绿龙", "黑白王"] mnqIndexDropValue = ["1", "0"] @@ -1096,8 +1098,8 @@ def StartNormalFight(): # endregion def BuyExp(): - # TODO 石头 界面选择 次数限制 - logger.info('买经验和石头, 购买数量' + str(buyExpNum)) + # TODO 次数限制 + logger.info('商店-通常, 购买数量' + str(buyExpNum)) ToHomePage() ToShopPage() WaitToClickImg('img/shop/shopTop.png', False) @@ -1132,6 +1134,38 @@ def BuyExp(): ToHomePage() +def BuyDxc(): + logger.info('商店-地下城, 购买行数' + str(buyDxcRow) + ', 购买次数' + str(buyDxcNum)) + ToHomePage() + ToShopPage() + WaitToClickImg('img/shop/shopTop.png', False) + if IsHasImg('img/shop/shopTop.png', False): + WaitToClickImg('img/shop/dxc.png') + else: + BuyDxc() + + for i in range(buyDxcNum): + logger.info('购买中, 当前次数: ' + str(i + 1)) + + for j in range(buyDxcRow): + expCounter = 1 + while expCounter <= 4 and IsHasImg('img/shop/exp.png'): + expCounter = expCounter + 1 + print('IsHasImg', expCounter) + scroll_down(SCROLL_KEYS_1, SCROLL_200MS) + WaitToClickImg('img/shop/buyBtn.png') + WaitToClickImg('img/shop/buyTitle.png', False) + WaitToClickImg('img/main/sure.png') + time.sleep(0.5) + WaitToClickImg('img/main/sure.png') + + if i + 1 != buyDxcNum: + WaitToClickImg('img/shop/update.png') + WaitToClickImg('img/main/sure.png') + + ToHomePage() + + def NiuDan(): # TODO 按键位置 WaitToClickImg('img/main/niuDan.png') @@ -1400,12 +1434,18 @@ def OnAutoTask(): # def SkipDuiHua(): -def OnHouDongHard(): - logger.info('开始剧情活动') +def OnHuoDongHard(hd='jqhd'): + huoDongkey = 'img/huodong/jqhd.png' + if hd == 'fkhd': + logger.info('开始复刻活动') + huoDongkey = 'img/huodong/fkhd.png' + else: + logger.info('开始剧情活动') + ToFightPage() WaitToClickImg('img/main/dxc.png', False) # DoKeyDown(huodongKey) - WaitToClickImg('img/huodong/jqhd.png') + WaitToClickImg(huoDongkey) DoKeyDown(exitKey) DoKeyDown(exitKey) @@ -1423,7 +1463,9 @@ def OnHouDongHard(): logger.info('刷剧情活动关卡' + huoDongHard) if huoDongHard: beats = list(huoDongHard) - WaitToClickImg('img/huodong/jqhd1-5.png') + x, y = GetImgXY('img/huodong/jqhd1-5.png') + Click(x, y - 50) + # WaitToClickImg('img/huodong/jqhd1-5.png') for i in range(5): time.sleep(1) if str(5 - i) not in beats: @@ -1493,6 +1535,8 @@ def DianZan(): def DailyTasks(): if isExp or isStone: BuyExp() + if isDxcShop: + BuyDxc() if (isNiuDan): NiuDan() if (isTansuo): @@ -1518,8 +1562,10 @@ def DailyTasks(): needSeedZbStart() if (isDianZan): DianZan() - if (isHouDongHard): - OnHouDongHard() + if isJuQingHuoDong: + OnHuoDongHard('jqhd') + if isFuKeHuoDong: + OnHuoDongHard('fkhd') if (isTuitu): OnTuitu() if (isHomeTake): @@ -1658,6 +1704,7 @@ def GetIntConfig(key): dxcGroupDaoZhongKey = 'DxcGroupDaoZhong' isExpKey = 'isExp' isStoneKey = 'isStone' +isDxcShopKey = 'isDxcShop' isNiuDanKey = 'isNiuDan' LeiDianDirKey = 'LeiDianDir' isRunAndStartKey = 'isRunAndStart' @@ -1674,7 +1721,9 @@ def GetIntConfig(key): isNeedSeedKey = 'isNeedSeed' isHomeTakeKey = 'isHomeTake' -isHouDongHardKey = 'isHouDongHard' +isJuQingHuoDongKey = 'isJuQingHuoDong' +isFuKeHuoDongKey = 'isFuKeHuoDong' +isHuoDongHardKey = 'isHuoDongHard' huoDongHardKeys = 'huoDongHard' needZbNameKey = 'needZbName' @@ -1691,6 +1740,9 @@ def GetIntConfig(key): isExp = GetBoolConfig(isExpKey) isStone = GetBoolConfig(isStoneKey) buyExpNum = GetIntConfig(buyExpNumKey) +isDxcShop = GetBoolConfig(isDxcShopKey) +buyDxcNum = GetIntConfig(buyDxcNumKey) +buyDxcRow = GetIntConfig(buyDxcRowKey) isNiuDan = GetBoolConfig(isNiuDanKey) LeiDianDir = cfg.get('MainSetting', LeiDianDirKey) @@ -1705,7 +1757,9 @@ def GetIntConfig(key): isFor64 = GetBoolConfig(isFor64Key) isAutoTask = GetBoolConfig(isAutoTaskKey) isHomeTake = GetBoolConfig(isHomeTakeKey) -isHouDongHard = GetBoolConfig(isHouDongHardKey) +isJuQingHuoDong = GetBoolConfig(isJuQingHuoDongKey) +isFuKeHuoDong = GetBoolConfig(isFuKeHuoDongKey) +isHuoDongHard = GetBoolConfig(isHuoDongHardKey) huoDongHard = GetStrConfig(huoDongHardKeys) isVHBoss = GetBoolConfig(isVHBossKey) isDianZan = GetBoolConfig(isDianZanKey) diff --git a/AutoPcr_py/AutoPcr4.0_GUI.py b/AutoPcr_py/AutoPcr4.0_GUI.py index 0d741b2..7f7e22f 100644 --- a/AutoPcr_py/AutoPcr4.0_GUI.py +++ b/AutoPcr_py/AutoPcr4.0_GUI.py @@ -133,7 +133,7 @@ def SetMnqDir(): isHomeTakeKey = 'isHomeTake' isJuQingHuoDongKey = 'isJuQingHuoDong' isFuKeHuoDongKey = 'isFuKeHuoDong' -isHouDongHardKey = 'isHouDongHard' +isHuoDongHardKey = 'isHuoDongHard' huoDongHardKeys = 'huoDongHard' isVHBossKey = 'isVHBoss' needZbNameKey = 'needZbName' @@ -171,7 +171,7 @@ def SetMnqDir(): isHomeTake = GetBoolConfig(isHomeTakeKey) isJuQingHuoDong = GetBoolConfig(isJuQingHuoDongKey) isFuKeHuoDong = GetBoolConfig(isFuKeHuoDongKey) -isHouDongHard = GetBoolConfig(isHouDongHardKey) +isHuoDongHard = GetBoolConfig(isHuoDongHardKey) huoDongHard = GetStrConfig(huoDongHardKeys) isVHBoss = GetBoolConfig(isVHBossKey) isDianZan = GetBoolConfig(isDianZanKey) @@ -218,7 +218,7 @@ def SavaConfig(AllValues): SetConfigAuto(isHomeTakeKey, AllValues) SetConfigAuto(isJuQingHuoDongKey, AllValues) SetConfigAuto(isFuKeHuoDongKey, AllValues) - SetConfigAuto(isHouDongHardKey, AllValues) + SetConfigAuto(isHuoDongHardKey, AllValues) SetConfigAuto(huoDongHardKeys, AllValues) SetConfigAuto(isVHBossKey, AllValues) SetConfigAuto(isDianZanKey, AllValues) @@ -255,7 +255,7 @@ def ReadConfig(): ReadBoolConfig(isHomeTakeKey) ReadBoolConfig(isJuQingHuoDongKey) ReadBoolConfig(isFuKeHuoDongKey) - ReadBoolConfig(isHouDongHardKey) + ReadBoolConfig(isHuoDongHardKey) ReadStrConfig(huoDongHardKeys) ReadBoolConfig(isVHBossKey) ReadBoolConfig(isTuituKey) @@ -340,11 +340,11 @@ def StartPcr(): [ sg.Checkbox('购买经验', isExp, key=isExpKey), sg.Checkbox('购买石头', isStone, key=isStoneKey), - sg.Text('购买次数'), + sg.Text('次数'), sg.DropDown(buyExpNumValue, buyExpNum, key=buyExpNumKey, size=(2, None)), ], [ - sg.Checkbox('消耗地下城币', isDxcShop, key=isDxcShopKey), + sg.Checkbox('地下城商店', isDxcShop, key=isDxcShopKey), sg.Text('行数'), sg.DropDown(buyDxcRowValue, buyDxcRow, key=buyDxcRowKey, size=(2, None)), sg.Text('次数'), @@ -373,7 +373,7 @@ def StartPcr(): sg.Checkbox('复刻活动', isFuKeHuoDong, key=isFuKeHuoDongKey), ], [ - sg.Checkbox('困难本', isHouDongHard, key=isHouDongHardKey), + sg.Checkbox('困难本', isHuoDongHard, key=isHuoDongHardKey), sg.Text('关卡'), sg.InputText(huoDongHard, size=(8, None), key=huoDongHardKeys), sg.Checkbox('VHBoss', isVHBoss, key=isVHBossKey) @@ -408,7 +408,12 @@ def StartPcr(): [sg.Text('模拟器启动等待时间'), sg.InputText(moniqTime, size=(6, None), key=moniqTimeKey)], [sg.Text('雷电模拟器文件夹:')], [sg.InputText(LeiDianDir, size=(30, None), key=LeiDianDirKey), sg.FolderBrowse()], - [sg.Button('保存配置'), sg.Button(StartRunName), sg.Button(RunName), sg.Button('检查模拟器')], + [ + sg.Button('保存配置'), + sg.Button(StartRunName, image_filename='img/other/btn.png', font=('幼圆', 12), button_color=('white', '')), + sg.Button(RunName), + sg.Button('检查模拟器') + ], ] menu_col = [ [sg.Text('项目地址', font='underline', enable_events=True, key="URL")], diff --git a/AutoPcr_py/config.ini b/AutoPcr_py/config.ini index 4c8d024..ccfc83d 100644 --- a/AutoPcr_py/config.ini +++ b/AutoPcr_py/config.ini @@ -34,22 +34,22 @@ isautotask = False isbuymoreexp = False [MainSetting_1] -isjjc = False +isjjc = True get_time = 50 -istansuo = False +istansuo = True isdxc = True -isexp = False -isniudan = False -isrunandstart = False +isexp = True +isniudan = True +isrunandstart = True isxqb = False iskillboss = True isxinsui = False issend = False -isneedseed = False +isneedseed = True isjiaju = False dxcdrop = 黑白王 -ishometake = False -ishoudonghard = False +ishometake = True +ishoudonghard = True isuseallpower = False needzbname = 焰帝戒指 isautoclose = False @@ -63,10 +63,16 @@ playername = player1 isautotask = False isbuymoreexp = True isdianzankey = False -isvhboss = False -isdianzan = False +isvhboss = True +isdianzan = True huodonghard = 135 -isstone = False +isstone = True buyexpnumdrop = 4 isskipdxc = True +isjuqinghuodong = False +isfukehuodong = True +isdxcshop = True +buydxcnumdrop = 4 +buydxcrowdrop = 1 +ishuodonghard = True diff --git a/AutoPcr_py/img/huodong/fkhd.png b/AutoPcr_py/img/huodong/fkhd.png new file mode 100644 index 0000000000000000000000000000000000000000..2566815f575d4affddb9ce0d2a6369a28a0cc0b8 GIT binary patch literal 3004 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 delta 4242 zcmV;D5N+?=2%RAziBL{Q4GJ0x0000DNk~Le0000x0000Z2nGNE04ktzMUf#ie-JWB zL_t(&L#w5mt93TV+%@u_!*pZmyEux>v7`Q`sw5*(j;7FKNLE z71)K#VR8y~4lbBG^M|l?Wq|-Xeu&t%mFRR8HRLj2J3V){^PXwrrVE z*kYZ1UN`>-_*T|-m@%w`kuKkyN& z)gXUDevL2x;oRW=QyT0!2hm7WJ@d*QVtNdEC!a-pSQi}V*9;`vQ%I~$p#O_4IA)E& znoc9?yU?4H=uZq|`1L-uzCyuC{EWn4tWH2P6FgCerfKj?E}YyXT-WAvf6gS|D02w^ zoS(mH!Ze6Ec03ZA~AjL7GJ`bQd3`pC!Z^KarSn<991*S}%+f8TurM%2Q0_Re7K z=P%&=Ss%amrL~CMqQrUbBGqt|;eS|!d)-2PeIrm?3;!cwfLhiJ^a$#zH5C3chd=CY!q7k$ zYOj~^!@qbPb~PE`e|gTwMV?uMNS%fnN*lZ{qo&&DkWYTEiQrfNauvIWx(Mb1zP4|- z5)eu`eC5v@QMlye$#3q)U++1Jmft1dh_F-{Lcz6NszR}lrxjUvCo_w4=d$?G{=G1o zb$o-ots=G)hfkobv59*`lu~Sa9tDCe-6XDHGgS4)6Su?be}HJOreV;`TnuGX$e%lj z^l=|uTMd{S_F%Ko13%Fss)w%Yh>B0I;&pvsHifsR=~oVnwJ{{VoItX(8GbQ`vF#Zg zo1ai~P#UM$foHn1ICyA1VolvhpRtfVo`s#KTTscHw|A?ljzf32LU$m?4w-jpmb&X< zBD?vnyqVg1f10+Z*3#hBXN5iqHuPU7lE?7T7L4uBmbXyTkB zo2hLnSwG^z&sq3M{umjy;1{N70Um=GnLX!Y+tCrm0GUl+EDC60M8~0>(`fA=v#TjT z?xWSNrjKr>FApHvNTCbkHY4Qldm`;LGG}$9cBEi1l1g9;NM?sC z6xa$S)PJ8m*t2<@_=jn9v>QllO5vHN5wsZvy5E?daY=T)>7vad;mOk?ceMRe~l zVKUulVPpM6o(Cm5qkP9`s1S}nmc+` z*w3C#WAf!RP1nKj8!Zwikvp%UW23IL6{|Ps(pgO!04Vl>>EBtjwbM+c(cx%Sn;iAjRRk3rvz>mQ59oKmMUd| z0*&C-JaChni|JMKR<&ee=38=U|NCVmev7g45$3bs)G&Ldgvr+~e>j3_ ziEx=Sl&bH*q1iar7@WBiTqTl|4TJpYON0|?`3yw)9Bc+CheI|UI~+*%#Nla`A`IO` z{))q#NJd$`NQoyDWiXL+B^2Wve$-%dF(k<&uWE?y;fx9 zq%jh@__Mx7y!Wn+rluJA;GWb<4Ol&KU5Gbe@WT>E8K+N2(DJ1yi-dWae|jB94QA(D zJSg7$t0h#Yw)SCkzk}2k1L;$YbdpLw7DkwcJPWvyrT;Uyq3)jm%xfF8Myzq-6c2zk%5Z)#ZTFmo{?7=V~0X>7XA_p+!9n`EHhQB$w7r6 zM>akSZ&RmS^u5C8+*@24vAE6%Np0{3*$tQ!ZLmiS7!JN`wG|&>f4{q0K+ts0=8@c? zqq&{?BnZ-Q5$8OY098s+8r9L?H$xZmaqyKSx?eD%bN#^188S$~wQ)GqhRk;^OI=Oy ztsp=R+jh_`J_B#v1g+-rL6vvoUsY|~)AUswd1F1M84y}G2K{NYHr%i>NR9*(GG<@q zrtKzcU-piV%MqkU#lYvBJcZ>vQ>0e>ObC?>wU8L5p13XGz07Ui+ZW<1s|Fy67l zQR1P$IyHEtfIDY624il3_}(eU5_76m;!O(a;+f7ooQM_C)&L`Z<6D+1|53b zMDC{+b9V)-ck#AI$MC+M-) z7|VT{InPmVChkJkl^lBh$V2)cm-Du|K>{Av7g$N<^}x>=oO+)N_Nlr)|L*O%GbfPE zouuilhc)G)mHx7q!C-KdeJf3qvZX)CJ05ly$7v#uf43sVuB5rCnZY5(z+>aZ=LgW- zJcrbmY0Ar@s@TR7rUj%t4+TPfg`do(YJLydte(;HWhKkqTJ7@*~fzOtLM&63ODpK^&QPL5x+LdK*AP|_CLS| z+nS3qf0*Pk{$r1&S2qT~J&0s`QUMi;#ibuLQLqWCE*vxuH7eQ(K`sTlL#T5?WM5V=t&Rcr3cx z(Er6OT3Q7F8{{b)U3*R5PpXN=S+LLSM$cabe{Tb&j#U-U5)vIrr&H0T|8W3p0bmI7 zUX*7>(diauLr`5!zBLJpm5`z(YqS59M%!aPdQXex0mGAl&kv<$kmz8$L1APW%=%ts z#}x`&T&C)m^Qqel8!h!Ip(O|OZ@01Mg%Kp0n^7PGnKM)9+sDo$Tr>LZA*K)B+sVxZ zf3*|{M(9%;eQ(Ibk<{-=8wfaL8Z_mMD9(%FutHUcf{sD9aGDet^q z^mCf`Qalv+y}{nWV46Lue_m^&htYqb5nA9?+=d?C$yrKErgQH#>_D~U7yRIZnUtt`G{lM1yqv!Z!QCj<21IRD*af1Xf9 z==Vz%Ejh)4N@dn;4&$$lVfdv(m^jXkrzlaEnP82HUd9dAH3(YnaG})X@=`q9#4l42 zV$Mq~m2}5f(meo(8L9V8^8Eh*a+>w&$upv5N&KIr^=n*g>*P9WVEt+jlgtje%Pb># zR$QkQF>g=4J*`YpG%M8B-ijPee>_Kl7^@kX`7H2NY5kU4oK~}V=iX*4LFNXhIRt6b zY*`@O&2oPoWu~HN+t7vaH&0^X^iP(Jffoib^FAvvb|ykyn>hDzkD9fZ!}I8Qg7tBS z2#|$>lu=8GT2w(xBK@b3FI`ed)dE0dqBJ5J3qi_TJ>Ol_=7PpPMXN$`e{^LCsUXT> zU(Lh55{|iGIK=>fCe<2Ea{Rc*R}sIpt3=;7iO zVPkoOmOv-%n9P&HfAW-u?&k*4#wh&B7i?Tl&DktXhj#UIosU!}e^a5%3&Co>MGQe8 zlXu^hJ;bNwN3IpS`x+0ZJ0$f>T1XLjaTN(hS$=Q|y}Nvii)lxfFIAydW8wcWeeV1; z&i(T{Fh73{YkymQeG90vTkS(N)L;!78wjpJR4#E(y9zbyM+$L&A(wQ{l~DOLu@30p4+j`rU^C%eu74mmwCR-awGl+VHvp oR`y}lq^{-BQm|}jT-V0`0>fu;C77JGGynhq07*qoM6N<$f)Y$BYybcN diff --git a/AutoPcr_py/img/other/btn.png b/AutoPcr_py/img/other/btn.png new file mode 100644 index 0000000000000000000000000000000000000000..69d83538793b4d3b7188b25886b5549ce8ca8ede GIT binary patch literal 3549 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 CR~PaC literal 0 HcmV?d00001 diff --git a/AutoPcr_py/img/other/lunata.png b/AutoPcr_py/img/other/lunata.png new file mode 100644 index 0000000000000000000000000000000000000000..01d54bc5a38e9b23522126a1d193d4aa51c50307 GIT binary patch literal 8516 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