From ef0afa0292f471e612d1c003ce3d47e2834abbbd Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 21 Sep 2020 03:49:27 +0900 Subject: [PATCH] Finished successful implementation of ypointer saving between future tone and megamix --- DivaBot/rectangle0.png | Bin 7017 -> 5796 bytes DivaBot/rectangle1.png | Bin 6734 -> 6199 bytes DivaBot/rectangle2.png | Bin 6014 -> 4810 bytes DivaBot/rectangle3.png | Bin 5502 -> 5841 bytes DivaBot/rectangle4.png | Bin 6429 -> 4673 bytes DivaBot/src/sig/Calibrator2.java | 4 +- DivaBot/src/sig/CustomRobot.java | 1 + DivaBot/src/sig/MyRobot.java | 403 +++++++++++++++---------------- DivaBot/src/sig/TypeFace2.java | 125 ++++++---- DivaBot/typeface.png | Bin 17099 -> 17368 bytes 10 files changed, 284 insertions(+), 249 deletions(-) diff --git a/DivaBot/rectangle0.png b/DivaBot/rectangle0.png index ce7972bbfd7bd823591f0803f73875fda9e18dc0..130d826a07e847a06bf1ada48d957e09418385a0 100644 GIT binary patch literal 5796 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 Hu0mjftZ1tQ diff --git a/DivaBot/rectangle1.png b/DivaBot/rectangle1.png index 7c832fbb9b56f8089d7feac50d65d0d02e55cffc..c506cde55fdb50b318bfb3222c99e3d7568a4e1b 100644 GIT binary patch literal 6199 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

^`UGIpT9a1{mWT7oo6 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 diff --git a/DivaBot/rectangle2.png b/DivaBot/rectangle2.png index a3d64f1fa7539d7b56d778064a4a2ccad5a1f866..5c3263b57feb4ae75222e2789512aab9bff894fd 100644 GIT binary patch literal 4810 zcmV;*5;g6KP)Pfb24X=IG!XYu^kgL1{5$Dj3Hq5b;2qzi`gZNv5iS^KnR1e zK?01C!XhN0eQj;6mRh|pQt!JY{LQ`9edSWq5=ijFJ@37$dR5i+)xGz-_f_XbqfsOh z38dl)j0PhJ^$#M@-i=^wD}wcHh<5cMX>(#E7DtlWC6mbs!tW+>l#8TNDODc|gKatlJVHZ5 z1G>ArVYOP-IN@+uiL49%M!_gX7(^mbuQ9(D+^e;d^eUgD6078@`wMaGlgk|NQJE zpn8mbXlQB2gPM9&Jg7oNWeqAGvQ*>p^&7bO)i*eQ`RbH%f#lNFYq(l^6IIpKXm4*< zYoo6PuMcA*fH6kFV2FO32YK8u7KuY6r zNSfE#*-4wispiXbh(sb2)|de^4_eUB*o-`$d>XVQMhTRd(}QsDfC4S_h@_=UJ&%xD zrZf|&gY_(+vG8QrGWIEFvb7$CUR)>vXfr zpl-D%kt@Q*-EtW3>?*`NyNfbXh($Y(W8pK%g6+rf=K6j3^^&bvx${Gu zxo{beYU|Xx^!E0uHR3ria4fuWY)&_B-mAv$qR-Qyu?jL6qvY2T9v`A6%MYM6cOu+v z!bm8hKubLbXuLRVyLoavFUS8u^+wPW=A z?=klHF%smjhso#I+{3WAhDe4dh|M#E5L>CSF^thW;Y13R8yxL?5G8O<1tvQZEPZi)jhAKi8&KZ5>Rxl)6J&9l2VegjFjTsl~QyOnG4hUK7K~fMB|uQ8jVI2 zmzLxGy+!zsIqxG+OpBj{K}&_gNI2XGw{;QaZ$*G6>u>5nf_70V#GoZ+44RloUIez? ztZ}*zd0xm~zg zxFImYoT zi4kBUOiIWGM~E>h(@5Ipr)y-;Mt&`T(Hx*nN830^Wa1-1Hfvk9AA4SMB4$zm&`qRn z76lxg+DlNb2jSdjHMxkBCAWyCZ^;SThW$nO`P>y)L5o}ZpcWO6nsKi5E_R(R!H@p1 z0L3@Urwtkd#+j2Fx6ARTHM=p3GCShJ6@& z0idzAu|H$bI4%+Gm<+V(no0pcOr=glvNcGwOb^JVUO?tPt4PxdFW$(2b}J`nzgn;g zI}6XEd%yxGZTyEVJ^1u$IbM2gAuisU8E6&v9^m}tuW8&(n6qg=wx2qWJPF=HG_eR> zQ%vhgqhe+&0*wS(eT$M11(&RWqtO_FMF6DIG7~bw!hVB6V?v_GOE1E==|nR#8gZt+BO}a z#NTmBi$UTzgh7))Quj&E1D^OSo&M`gPyopWOoDKE*0t~ffp(&}jC|S@pehJI9LBi=F(9(hUxXchV9*^S>22E#?xj>sPa60{Gt&v1>cE(?4j{=|o zDu9W(tZeKc_IPtj(0(@iJuKc-fMPOdSH8K1<7d9Wn!U&Iqu>9TeA@Jh$o;As{H^3F zmTcaQU%tH-drn_Ki_wzyX#yPo*myKe`$xRwfZMysL{f15s0G6mw1K06-sd%IH2ZC2yf(nR@dRcr|0qGSxd0-;3<^dt3fc9;5aR$ zna3azk`Q7fV`L(Ookj#X_sHgvCLQS;K!VI>iql=m#B%{A31r^=9B8wt%oS+oN^Rvz zZ{_+hnw^W(Q&(a(b*e9b34xJ!xXpcX6UQ!;J^|Y3_mANxm(gxA<2L#JvYMs|a)abf zT{A2mFJknYvq5`>;<|mO&Y`-tUTt1Z?@3;^w4xH*j-SCxvzFq}*%I=R?TDvF(ixF) z&@$9NO4qRvu}X^7Ld^z*$UFub+7a$CAw~ox6^}iWX`C#HEYGarydb=@SmUNLk<$T9 zfMXGW{vkD(9Gu z$L#6pL4SY$cy>h3zUwjEROV0zQ~#nZF`Ae;{aFvX^)#052c^D>nDpr@-{KdGHe%nW z#kl>jo)(czJH@kxX-Yk<DR;X+}VcM8YZu8KTK^a+r@9ggbl31MDCH7$G1>`GY8b#>oNNbO;IG zb9O`mZ3b>K_BdTaBA|BS*4vM-?$+Xe-rI^f>k6=R+d-`R z-~`q`A;&W^dD-f{$1s2M2P$BGch?CNmsMcU<`@TTh{oNDeI57LXLV4F)QKfTH1ane!2hn@jkyHgy!CsKzacI2 z))y$5yKXn~*Y8nv^2}FhH<#|;r1xK2wF?K%UdEm3M!3l5iKTP7J!ow2#Nr)C@CVYw zIU5h4{81z7h|M>2P@E=FKZ6#FMQMV5GLJzdSerba|Fq_KE?++>>i zNgJ+LHRH_9N*uX-2L~_SQrDwb%5m&U1rC4t9S&W(t;&yHF2|8C@8IyI?{KjAma02O z?T&v{q3TZ1_0+YyXdvD&=yW5L3AtFyY_y3R+6;L6uZQs83)kc4`Kz#M_lKmVN3eG9 zp)_dx;~2C!ffkL15sicp<&@U2UztN6k&ytAksy(g5Cz$s=1Qus-SKIE2+c)Kcu_dO zX3&_B$ednO0y+B_Law6-Liq(S(Lg85h4(}P~K6&{Sxnxw*B_q zO_;rEJKkEegJfsgJn|y&!ZB#E7@0}(Z4sI*gA=9B{jFUpz~-z!pUz59td`6iQFsxc zv0r1#&xC~OuB5bHL;_jQH)fL$J$bArjB|Yy6%8CBjdN1i!{;8|3^J|Jkk3!%ZAhJm zWHaZbMR$9L)V<5?RrNlyPCkl#J>Fqe&evg|f7}v?#-~YC2p$^e+Pz0Ob*W4dlKr2R z;J_J{OKJ8fFT^y^I1ibkfnr2P0&P8t_Nyax6ko(#Uh;X-OpyJ2@tS1*IXl9Bje(PM z8MzqZO!AOA!N|_|%Xtyqr|Bs*`3@(hGCSccnG-#`BCJ*Xv*dQAT>9d2(R9A1c|}x- zvOW$sx(4iM>9wF^z&S2?63ehem5C&(Pb4Jh4=6Gc&m5@>6KG)qEllx6gtRZ|Pk#}} z_Em}Od}F38uHC0U>u8{Hc7(>a+Q{q}3<|)>j@M1dkcd3x?1-L{5{;8ImQGBhUNlTV z7BecuM48RdL@kzVj&5F6_>_r%1svU9D@`A!vVed5B(Z*mGd)haoYQ`iYRvO%1FO$7 z1QcgQe5B$r(zGapM)63Xx|yUYP5+7h#z?(6-6cDNB@)X>G%c!JFN%$CL4UxxUruCfQ3sd51D-H2U5C%x3dvh=^A^5v?{Ke;(3~ zwCAxSROi$AkS9%qU*yGblidvxa6yL)L2{-;4;wL5Sr0GKQ#aAh5QPI_u4fy}yMvD{ zWJy3I{A68ryWs$V<|NkC+=R~VZuE18gci!}W%1+?T2Q*Wa@6tSDH%$O)6Hk^9T>D) z$nQAm-U%ydvxPL9Hwr&<9k+23a14}<>RBALHgPWYDd3am`kgkJv8}(yLZw3N| z`(ozDW2lY7+RNqK4~@ZnGaz;~hfF)(RQ|NMsI5c&SHPv-_mKuNSYA$cXUe&cyaA^j zy%u6P=6>|qtuVVB;IclO1!j7-m+J7CCp~jLw{P$3rFKSi(Ha?TgX(Ia zHimv9&1C>aYLkBMQ|(Rm^!Qx^CiNbd8R?nlX`nLhzlYv4Ic?}C;X0llx92t{hYe=8 kGgC*5l*)N-#!TJ+11yyhS8osae*gdg07*qoM6N<$g1w_W%>V!Z literal 6014 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 diff --git a/DivaBot/rectangle3.png b/DivaBot/rectangle3.png index 100cfc5f57507ea2bd449baca1e7f3c0d384115d..188ab97dd20d0a4fffe5f8f4da6ba79cee6ac280 100644 GIT binary patch literal 5841 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 b#`AvxwBoZa`nZGD00000NkvXXu0mjfma%Bw literal 5502 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%0D6U>%o=2emt}MWBe!8<$u4j5?c-&#?C{> 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 diff --git a/DivaBot/src/sig/Calibrator2.java b/DivaBot/src/sig/Calibrator2.java index b82a437..a0753c3 100644 --- a/DivaBot/src/sig/Calibrator2.java +++ b/DivaBot/src/sig/Calibrator2.java @@ -104,8 +104,8 @@ public class Calibrator2 { Overlay.OVERLAY.setVisible(true); MyRobot.CALIBRATIONSTATUS="Calibration is complete! - X"+(MyRobot.STARTDRAG.x)+" Y"+(MyRobot.STARTDRAG.y)+" W"+(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)+" H"+(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y)+" R"+((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y)); - if (((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y))<=16/9f-0.04|| - ((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y))>=16/9f+0.04) { + if (((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y))<=16/9f-0.015|| + ((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y))>=16/9f+0.015) { int dialogResult = JOptionPane.showConfirmDialog (null, "Could not detect the game properly!\n\nYour calibration cut a bit "+((((float)(MyRobot.ENDDRAG.x-MyRobot.STARTDRAG.x)/(MyRobot.ENDDRAG.y-MyRobot.STARTDRAG.y))<=16/9f-0.04)?"more":"less")+" than expected. Do you want to try selecting a more accurate region?","Warning",JOptionPane.YES_NO_OPTION); if(dialogResult == JOptionPane.YES_OPTION){ MyRobot.STARTDRAG=null; diff --git a/DivaBot/src/sig/CustomRobot.java b/DivaBot/src/sig/CustomRobot.java index 6cd806a..0419fa7 100644 --- a/DivaBot/src/sig/CustomRobot.java +++ b/DivaBot/src/sig/CustomRobot.java @@ -57,6 +57,7 @@ public class CustomRobot extends Robot{ calibration_data[1]=Integer.parseInt(data[1]); calibration_data[2]=Integer.parseInt(data[2]); calibration_data[3]=Integer.parseInt(data[3]); + TypeFace2.deepCopyDefaultOfficialYPointers(); } private boolean CalibrationDataChanged() { diff --git a/DivaBot/src/sig/MyRobot.java b/DivaBot/src/sig/MyRobot.java index 536563c..cd96ef6 100644 --- a/DivaBot/src/sig/MyRobot.java +++ b/DivaBot/src/sig/MyRobot.java @@ -309,122 +309,32 @@ public class MyRobot{ private void RunMainLoop() { try { - if (CALIBRATION_MODE) { - if (MyRobot.calibrating) { - MyRobot.calibrating=false; - Overlay.OVERLAY.setVisible(false); - Thread.sleep(1000); - Calibrator2 c = new Calibrator2(); - } - } else { - //ImageIO.write(MYROBOT.createScreenCapture(),"png",new File("testscreen.png")); - if (checkSongSelect()) { - //System.out.println("On song select"); - if (!overlayHidden) { - overlayHidden=true; - MyRobot.p.repaint(); - } - GetCurrentSong(); - GetCurrentDifficulty(); - recordedResults=false; - if (selectedSong!=null && difficulty!=null) { - if (!prevSongTitle.equalsIgnoreCase(selectedSong.title) || !prevDifficulty.equalsIgnoreCase(difficulty)) { - System.out.println("On Song Select Screen: Current Song-"+selectedSong.title+" Diff:"+difficulty); - p.pullData(selectedSong.title,difficulty); - MyRobot.p.refreshAllLabels(); - prevSongTitle=selectedSong.title; - prevDifficulty=difficulty; - MyRobot.p.repaint(); - if (NEWSONGS.length==0) { - MYROBOT.keyPress(KeyEvent.VK_CONTROL); - MYROBOT.keyPress(KeyEvent.VK_SHIFT); - MYROBOT.keyPress(KeyEvent.VK_F11); - MYROBOT.keyRelease(KeyEvent.VK_F11); - MYROBOT.keyRelease(KeyEvent.VK_SHIFT); - MYROBOT.keyRelease(KeyEvent.VK_CONTROL); - } + if (CALIBRATION_MODE) { + if (MyRobot.calibrating) { + MyRobot.calibrating=false; + Overlay.OVERLAY.setVisible(false); + Thread.sleep(1000); + Calibrator2 c = new Calibrator2(); } - } - lastSongSelectTime = System.currentTimeMillis(); - } else { - MYROBOT.refreshScoreScreen(); - ImageIO.write(MYROBOT.createScoreScreenCapture(),"png",new File("scoreimage.png")); - if (overlayHidden) { - overlayHidden=false; - MyRobot.p.repaint(); - } - if ((selectedSong!=null && difficulty!=null)) { - if (OnResultsScreen() && !recordedResults && !recordingResults && results.size()==0) { - lastSongSelectTime=System.currentTimeMillis(); - MYROBOT.setAutoDelay(0); - if (NEWSONGS.length==0) { - MYROBOT.keyPress(KeyEvent.VK_CONTROL); - MYROBOT.keyPress(KeyEvent.VK_SHIFT); - MYROBOT.keyPress(KeyEvent.VK_F12); - MYROBOT.keyRelease(KeyEvent.VK_F12); - MYROBOT.keyRelease(KeyEvent.VK_SHIFT); - MYROBOT.keyRelease(KeyEvent.VK_CONTROL); - } - MYROBOT.refreshScoreScreen(); - ImageIO.write(MYROBOT.createScoreScreenCapture(),"png",new File("scoreimage.png")); - File tmp = new File("tmp"); - if (tmp.exists()) { - FileUtils.deleteFile(tmp); - } else { - tmp.mkdir(); + } else { + //ImageIO.write(MYROBOT.createScreenCapture(),"png",new File("testscreen.png")); + if (checkSongSelect()) { + //System.out.println("On song select"); + if (!overlayHidden) { + overlayHidden=true; + MyRobot.p.repaint(); } - try { - final Result data = typeface1.getAllData(MYROBOT.createScoreScreenCapture()); - //ImageIO.write(MYROBOT.,"png",new File("test.png")); - if (data.cool==-1 || data.fine==-1 || data.safe==-1 || data.sad==-1 || data.worst==-1 || data.percent<0f || data.percent>110f || data.combo==-1 || data.score==-1) { - if (lastData==null || (lastData.cool!=data.cool || data.fine!=lastData.fine || data.safe!=lastData.safe || data.sad!=lastData.sad || data.worst!=lastData.worst || data.percent!=lastData.percent || data.combo!=lastData.combo || data.score!=lastData.score)) { - System.out.println("Waiting for results to populate..."); - System.out.println(data); - } - if (lastData==null) { - lastData=new Result("","",-1,-1,-1,-1,-1,-1f); - } - lastData.cool=data.cool; - lastData.fine=data.fine; - lastData.safe=data.safe; - lastData.sad=data.sad; - lastData.worst=data.worst; - lastData.percent=data.percent; - lastData.combo=data.combo; - lastData.score=data.score; - } else - if ((data.combo!=lastcombo || data.fail!=lastfail || data.cool!=lastcool || lastfine!=data.fine || lastsafe!=data.safe || lastsad!=data.sad || lastworst!=data.worst) - && data.score!=lastscore /*|| lastpercent!=percent*/){ - //System.out.println("Results for "+selectedSong.title+" "+difficulty+": "+data.cool+"/"+data.fine+"/"+data.safe+"/"+data.sad+"/"+data.worst+" "+data.percent+"%"); - - System.out.println("Results for "+selectedSong.title+" "+data.difficulty+": "+data.display()); - File songFolder = new File(selectedSong.title+"/"+data.difficulty); - if (!songFolder.exists()) { - songFolder.mkdirs(); - } - File[] songFolderFiles = songFolder.listFiles(); - int playId = songFolderFiles.length; - final File playFolder = new File(selectedSong.title+"/"+data.difficulty+"/"+playId); - playFolder.mkdir(); - recordedResults=true; - lastcool=data.cool; - lastfine=data.fine; - lastsafe=data.safe; - lastsad=data.sad; - lastworst=data.worst; - lastpercent=data.percent; - lastcombo=data.combo; - lastscore=data.score; - lastfail=data.fail; - File resultImage=new File(playFolder,selectedSong.title+"_"+data.difficulty+"play_"+data.cool+"_"+data.fine+"_"+data.safe+"_"+data.sad+"_"+data.worst+"_"+data.percent+"" - + "_"+data.combo+"_"+data.score+".png"); - new File("scoreimage.png").renameTo(resultImage); - results.add(new Result(selectedSong.title,data.difficulty,data.cool,data.fine,data.safe,data.sad,data.worst,data.percent,data.mod,data.combo,data.score,data.fail,resultImage)); - SoundUtils.playSound("collect_item.wav"); - - //gotoxy(800,64); - //click(); - MYROBOT.setAutoDelay(0); + GetCurrentSong(); + GetCurrentDifficulty(); + recordedResults=false; + if (selectedSong!=null && difficulty!=null) { + if (!prevSongTitle.equalsIgnoreCase(selectedSong.title) || !prevDifficulty.equalsIgnoreCase(difficulty)) { + System.out.println("On Song Select Screen: Current Song-"+selectedSong.title+" Diff:"+difficulty); + p.pullData(selectedSong.title,difficulty); + MyRobot.p.refreshAllLabels(); + prevSongTitle=selectedSong.title; + prevDifficulty=difficulty; + MyRobot.p.repaint(); if (NEWSONGS.length==0) { MYROBOT.keyPress(KeyEvent.VK_CONTROL); MYROBOT.keyPress(KeyEvent.VK_SHIFT); @@ -434,105 +344,191 @@ public class MyRobot{ MYROBOT.keyRelease(KeyEvent.VK_CONTROL); } } - } catch (IOException|NumberFormatException|IndexOutOfBoundsException e) { - e.printStackTrace(); - System.out.println(e.getMessage()); } + lastSongSelectTime = System.currentTimeMillis(); } else { - if (results.size()>0) { - recordingResults=true; - for (final Result r : results) { - r.songName=r.songName.equalsIgnoreCase("恋ノート")?"恋ノート////":r.songName.equalsIgnoreCase("雨のちSweetDrops")?"雨のちSweet*Drops":r.songName.equalsIgnoreCase("Equation+")?"Equation+**":r.songName.equalsIgnoreCase("PIANOGIRL")?"PIANO*GIRL":(r.songName.equalsIgnoreCase("16 -out of the gravity-"))?"1/6 -out of the gravity-":r.songName; - HttpClient httpclient = HttpClients.createDefault(); - HttpPost httppost = new HttpPost("http://45.33.13.215:4501/submit"); - - // Request parameters and other properties. - List params = new ArrayList(); - params.add(new BasicNameValuePair("song", r.songName)); - params.add(new BasicNameValuePair("username", USERNAME)); - params.add(new BasicNameValuePair("authentication_token", AUTHTOKEN)); - params.add(new BasicNameValuePair("difficulty", r.difficulty)); - params.add(new BasicNameValuePair("cool", Integer.toString(r.cool))); - params.add(new BasicNameValuePair("fine", Integer.toString(r.fine))); - params.add(new BasicNameValuePair("safe", Integer.toString(r.safe))); - params.add(new BasicNameValuePair("sad", Integer.toString(r.sad))); - params.add(new BasicNameValuePair("worst", Integer.toString(r.worst))); - params.add(new BasicNameValuePair("percent", Float.toString(r.percent))); - params.add(new BasicNameValuePair("fail", Boolean.toString(r.fail))); - params.add(new BasicNameValuePair("mod", r.mod)); - params.add(new BasicNameValuePair("combo", Integer.toString(r.combo))); - params.add(new BasicNameValuePair("gameScore", Integer.toString(r.score))); - try { - httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); + if (overlayHidden) { + overlayHidden=false; + MyRobot.p.repaint(); + } + if ((selectedSong!=null && difficulty!=null)) { + if (OnResultsScreen() && !recordedResults && !recordingResults && results.size()==0) { + lastSongSelectTime=System.currentTimeMillis(); + MYROBOT.setAutoDelay(0); + if (NEWSONGS.length==0) { + MYROBOT.keyPress(KeyEvent.VK_CONTROL); + MYROBOT.keyPress(KeyEvent.VK_SHIFT); + MYROBOT.keyPress(KeyEvent.VK_F12); + MYROBOT.keyRelease(KeyEvent.VK_F12); + MYROBOT.keyRelease(KeyEvent.VK_SHIFT); + MYROBOT.keyRelease(KeyEvent.VK_CONTROL); + } + MYROBOT.refreshScoreScreen(); + ImageIO.write(MYROBOT.createScoreScreenCapture(),"png",new File("scoreimage.png")); + File tmp = new File("tmp"); + if (tmp.exists()) { + FileUtils.deleteFile(tmp); + } else { + tmp.mkdir(); } - - //Execute and get the response. - HttpResponse response = null; try { - response = httpclient.execute(httppost); - } catch (IOException e) { + final Result data = typeface1.getAllData(MYROBOT.createScoreScreenCapture()); + if (data.cool==-1 || data.fine==-1 || data.safe==-1 || data.sad==-1 || data.worst==-1 || data.percent<0f || data.percent>110f || data.combo==-1 || data.score==-1) { + if (lastData==null || (lastData.cool!=data.cool || data.fine!=lastData.fine || data.safe!=lastData.safe || data.sad!=lastData.sad || data.worst!=lastData.worst || data.percent!=lastData.percent || data.combo!=lastData.combo || data.score!=lastData.score)) { + System.out.println("Waiting for results to populate..."); + System.out.println(data); + } + if (lastData==null) { + lastData=new Result("","",-1,-1,-1,-1,-1,-1f); + } + lastData.cool=data.cool; + lastData.fine=data.fine; + lastData.safe=data.safe; + lastData.sad=data.sad; + lastData.worst=data.worst; + lastData.percent=data.percent; + lastData.combo=data.combo; + lastData.score=data.score; + } else + if ((data.combo!=lastcombo || data.fail!=lastfail || data.cool!=lastcool || lastfine!=data.fine || lastsafe!=data.safe || lastsad!=data.sad || lastworst!=data.worst) + && data.score!=lastscore /*|| lastpercent!=percent*/){ + System.out.println("Results for "+selectedSong.title+" "+data.difficulty+": "+data.display()); + TypeFace2.deepCopyOfficialYPointersFromPointers(); + File songFolder = new File(selectedSong.title+"/"+data.difficulty); + if (!songFolder.exists()) { + songFolder.mkdirs(); + } + File[] songFolderFiles = songFolder.listFiles(); + int playId = songFolderFiles.length; + final File playFolder = new File(selectedSong.title+"/"+data.difficulty+"/"+playId); + playFolder.mkdir(); + recordedResults=true; + lastcool=data.cool; + lastfine=data.fine; + lastsafe=data.safe; + lastsad=data.sad; + lastworst=data.worst; + lastpercent=data.percent; + lastcombo=data.combo; + lastscore=data.score; + lastfail=data.fail; + File resultImage=new File(playFolder,selectedSong.title+"_"+data.difficulty+"play_"+data.cool+"_"+data.fine+"_"+data.safe+"_"+data.sad+"_"+data.worst+"_"+data.percent+"" + + "_"+data.combo+"_"+data.score+".png"); + new File("scoreimage.png").renameTo(resultImage); + results.add(new Result(selectedSong.title,data.difficulty,data.cool,data.fine,data.safe,data.sad,data.worst,data.percent,data.mod,data.combo,data.score,data.fail,resultImage)); + SoundUtils.playSound("collect_item.wav"); + + //gotoxy(800,64); + //click(); + MYROBOT.setAutoDelay(0); + if (NEWSONGS.length==0) { + MYROBOT.keyPress(KeyEvent.VK_CONTROL); + MYROBOT.keyPress(KeyEvent.VK_SHIFT); + MYROBOT.keyPress(KeyEvent.VK_F11); + MYROBOT.keyRelease(KeyEvent.VK_F11); + MYROBOT.keyRelease(KeyEvent.VK_SHIFT); + MYROBOT.keyRelease(KeyEvent.VK_CONTROL); + } + } + } catch (IOException|NumberFormatException|IndexOutOfBoundsException e) { e.printStackTrace(); + System.out.println(e.getMessage()); } - HttpEntity entity = response.getEntity(); - - JSONObject report = null; - - if (entity != null) { - try (InputStream instream = entity.getContent()) { - Scanner s = new Scanner(instream).useDelimiter("\\A"); - String result = s.hasNext() ? s.next() : ""; - report=new JSONObject(result); - instream.close(); - } catch (UnsupportedOperationException | IOException e) { + } else { + if (results.size()>0) { + recordingResults=true; + for (final Result r : results) { + r.songName=r.songName.equalsIgnoreCase("恋ノート")?"恋ノート////":r.songName.equalsIgnoreCase("雨のちSweetDrops")?"雨のちSweet*Drops":r.songName.equalsIgnoreCase("Equation+")?"Equation+**":r.songName.equalsIgnoreCase("PIANOGIRL")?"PIANO*GIRL":(r.songName.equalsIgnoreCase("16 -out of the gravity-"))?"1/6 -out of the gravity-":r.songName; + HttpClient httpclient = HttpClients.createDefault(); + HttpPost httppost = new HttpPost("http://45.33.13.215:4501/submit"); + + // Request parameters and other properties. + List params = new ArrayList(); + params.add(new BasicNameValuePair("song", r.songName)); + params.add(new BasicNameValuePair("username", USERNAME)); + params.add(new BasicNameValuePair("authentication_token", AUTHTOKEN)); + params.add(new BasicNameValuePair("difficulty", r.difficulty)); + params.add(new BasicNameValuePair("cool", Integer.toString(r.cool))); + params.add(new BasicNameValuePair("fine", Integer.toString(r.fine))); + params.add(new BasicNameValuePair("safe", Integer.toString(r.safe))); + params.add(new BasicNameValuePair("sad", Integer.toString(r.sad))); + params.add(new BasicNameValuePair("worst", Integer.toString(r.worst))); + params.add(new BasicNameValuePair("percent", Float.toString(r.percent))); + params.add(new BasicNameValuePair("fail", Boolean.toString(r.fail))); + params.add(new BasicNameValuePair("mod", r.mod)); + params.add(new BasicNameValuePair("combo", Integer.toString(r.combo))); + params.add(new BasicNameValuePair("gameScore", Integer.toString(r.score))); + try { + httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + //Execute and get the response. + HttpResponse response = null; + try { + response = httpclient.execute(httppost); + } catch (IOException e) { + e.printStackTrace(); + } + HttpEntity entity = response.getEntity(); + + JSONObject report = null; + + if (entity != null) { + try (InputStream instream = entity.getContent()) { + Scanner s = new Scanner(instream).useDelimiter("\\A"); + String result = s.hasNext() ? s.next() : ""; + report=new JSONObject(result); + instream.close(); + } catch (UnsupportedOperationException | IOException e) { + e.printStackTrace(); + } + } + + final JSONObject finalReport=report; + + System.out.println("Submitting screenshot for "+r.f); + Thread t = new Thread() { + public void run() { + HashMap s = new HashMap<>(); + s.put("username",USERNAME); + s.put("authentication_token",AUTHTOKEN); + s.put("playid",Integer.toString(finalReport.getInt("id"))); + WebUtils.POSTimage("http://projectdivar.com/upload", r.f, s); + } + }; + t.start(); + } + results.clear(); + + try { + JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/"+USERNAME); + JSONObject obj2 = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/"+USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty); + p.lastRating = p.overallrating; + if (obj2.has("score")) { + double newScore = obj2.getDouble("score"); + if (newScore>p.lastScore) { + p.bestPlayTime=System.currentTimeMillis(); + } + p.lastScore = newScore; + } + p.overallrating = (int)obj.getDouble("rating"); + if (p.lastRating s = new HashMap<>(); - s.put("username",USERNAME); - s.put("authentication_token",AUTHTOKEN); - s.put("playid",Integer.toString(finalReport.getInt("id"))); - WebUtils.POSTimage("http://projectdivar.com/upload", r.f, s); - } - }; - t.start(); - } - results.clear(); - - try { - JSONObject obj = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/rating/"+USERNAME); - JSONObject obj2 = FileUtils.readJsonFromUrl("http://45.33.13.215:4501/bestplay/"+USERNAME+"/"+URLEncoder.encode(MyRobot.p.songname, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20")+"/"+difficulty); - p.lastRating = p.overallrating; - if (obj2.has("score")) { - double newScore = obj2.getDouble("score"); - if (newScore>p.lastScore) { - p.bestPlayTime=System.currentTimeMillis(); - } - p.lastScore = newScore; + if (!OnResultsScreen() && recordedResults) { + recordedResults=false; } - p.overallrating = (int)obj.getDouble("rating"); - if (p.lastRating=0; + + if (startPointer) { + ypointer=officialypointers[iteration]; + //System.out.println("Found a saved ypointer of "+ypointer); + } + trialloop: while (ypointer0) { break trialloop; } - ypointer++; + if (startPointer) { + startPointer=false; + ypointer=FUTURETONE_RECT_SEARCH_PCT.y; + //System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); + } else { + ypointer++; + } + } + + startPointer=officialypointers[iteration]>=0; + + if (startPointer) { + ypointer=officialypointers[iteration]; + //System.out.println("Found a saved ypointer of "+ypointer); } xpointer=FUTURETONE_RECT_SEARCH_PCT2.x; @@ -484,7 +514,13 @@ public class TypeFace2 { if (integer.length()>0) { break trialloop; } - ypointer++; + if (startPointer) { + startPointer=false; + ypointer=FUTURETONE_RECT_SEARCH_PCT2.y; + //System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); + } else { + ypointer++; + } } if (integer.length()>0&&decimal.length()>0) { return Float.parseFloat(integer+"."+decimal); @@ -493,7 +529,7 @@ public class TypeFace2 { } } - public float extractPercentFromImage(BufferedImage img,boolean debug) throws IOException { + public float extractPercentFromImage(BufferedImage img,boolean debug,int iteration) throws IOException { //1180,167 //second part: 1123 String decimal = ""; @@ -502,6 +538,13 @@ public class TypeFace2 { ypointer=MEGAMIX_RECT_SEARCH_PCT.y; BufferedImage test = null; + boolean startPointer=officialypointers[iteration]>=0; + + if (startPointer) { + ypointer=officialypointers[iteration]; + //System.out.println("Found a saved ypointer of "+ypointer); + } + trialloop: while (ypointer0) { break trialloop; } - ypointer++; + if (startPointer) { + startPointer=false; + ypointer=MEGAMIX_RECT_SEARCH_PCT.y; + //System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); + } else { + ypointer++; + } + } + + startPointer=officialypointers[iteration]>=0; + + if (startPointer) { + ypointer=officialypointers[iteration]; + //System.out.println("Found a saved ypointer of "+ypointer); } xpointer=MEGAMIX_RECT_SEARCH_PCT2.x; @@ -605,29 +661,6 @@ public class TypeFace2 { for (int y=0;y<29;y++) { Color fontCol = new Color(percentfont.getRGB(x+i*24,y)); Color pixelCol = new Color(img.getRGB(xpointer-24+x+1, y+ypointer)); - /*if (fontCol.equals(Color.RED) && pixelCol.getRed()<50 - && pixelCol.getGreen()<150 && pixelCol.getBlue()>150) { - //Breaks a rule. - ruleBreak=true; - if (!debug) { - break colorloop; - } else { - test.setRGB(x, y, Color.RED.getRGB()); - } - } else - if (fontCol.equals(Color.GREEN) && (pixelCol.getRed()>50 - || pixelCol.getGreen()>170 || pixelCol.getBlue()<150)) { - //Breaks a rule. - ruleBreak=true; - if (!debug) { - break colorloop; - } else { - test.setRGB(x, y, Color.GREEN.getRGB()); - } - } else - if (debug) { - test.setRGB(x, y, pixelCol.getRGB()); - }*/ if (fontCol.equals(Color.RED)) { if (lightColorCheck(pixelCol)) { @@ -694,7 +727,13 @@ public class TypeFace2 { if (integer.length()>0) { break trialloop; } - ypointer++; + if (startPointer) { + startPointer=false; + ypointer=MEGAMIX_RECT_SEARCH_PCT2.y; + //System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); + } else { + ypointer++; + } } if (integer.length()>0&&decimal.length()>0) { return Float.parseFloat(integer+"."+decimal); @@ -726,11 +765,11 @@ public class TypeFace2 { ypointer=0; String total = ""; - boolean startPointer=ypointers[iteration]>=0; + boolean startPointer=officialypointers[iteration]>=0; if (startPointer) { - ypointer=ypointers[iteration]; - System.out.println("Found a saved ypointer of "+ypointer); + ypointer=officialypointers[iteration]; + //System.out.println("Found a saved ypointer of "+ypointer); } trialloop: @@ -808,7 +847,7 @@ public class TypeFace2 { if (startPointer) { startPointer=false; ypointer=0; - System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); + //System.out.println("Could not find with saved ypointer. Switching back to old ypointer."); } else { ypointer++; } @@ -828,10 +867,10 @@ public class TypeFace2 { ypointer=0; String total = ""; - boolean startPointer=ypointers[iteration]>=0; + boolean startPointer=officialypointers[iteration]>=0; if (startPointer) { - ypointer=ypointers[iteration]; + ypointer=officialypointers[iteration]; } trialloop: @@ -930,10 +969,10 @@ public class TypeFace2 { ypointer=0; String total = ""; - boolean startPointer=ypointers[iteration]>=0; + boolean startPointer=officialypointers[iteration]>=0; if (startPointer) { - ypointer=ypointers[iteration]; + ypointer=officialypointers[iteration]; } trialloop: diff --git a/DivaBot/typeface.png b/DivaBot/typeface.png index 80d602d1b4ab838d27ad66596e22fc911878adbb..267e5d23f9258ef21696587ed7b9e17e9bd3ca58 100644 GIT binary patch delta 11617 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 delta 11471 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