


Detailed explanation of WeChat Tiaoyitiao PHP code implementation
Jul 03, 2018 pm 05:47 PMThis article mainly introduces the implementation of WeChat jump-assisted PHP code in detail. It has certain reference value. Interested friends can refer to it.
The example in this article shares PHP WeChat with everyone. The specific code for jumping is for your reference. The specific content is as follows
<?php require 'config.php'; function similar($rgb1, $rgb2) { $r1 = ($rgb1 >> 16) & 0xFF; $g1 = ($rgb1 >> 8) & 0xFF; $b1 = $rgb1 & 0xFF; $r2 = ($rgb2 >> 16) & 0xFF; $g2 = ($rgb2 >> 8) & 0xFF; $b2 = $rgb2 & 0xFF; return abs($r1 - $r2) < 10 && abs($b1 - $b2) < 10 && abs($g1 - $g2) < 10; } function getStart() { global $image; $width = imagesx($image); $height = imagesy($image); for ($i = $height / 3; $i < $height / 3 * 2; $i++) { for ($j = 0; $j < $width - 75; $j++) { if (checkStart($i, $j)) { $x = $i; $y = $j + 37; } } } return array($x, $y); } function getEnd() { global $image; global $sx, $sy; $l_r = 0; $cnt = 0; $width = imagesx($image); $height = imagesy($image); for ($i = $height / 3; $i < $sx; $i++) { $demo = imagecolorat($image, 0, $i); for ($l = 0; $l < $width; $l++) { $c = imagecolorat($image, $l, $i); if (!similar($c, $demo)) { $r = $l; while($r+1 < $width && !similar(imagecolorat($image, $r+1, $i), $demo)){ $r++; } if (abs(($l + $r) / 2 - $sy) > 20) { if (!isset($mid)) $mid = ($l + $r) / 2; if ($r - $l > BODY_WIDTH * 1.1){ if ($r <= $l_r) { $cnt ++; if ($cnt == 3) { return [$i, round($mid)]; } } else { $cnt = 0; } $l_r = $r; } } $l = $r; } } } return [$sx - round(abs($mid-$sy)/sqrt(3)), round($mid)];; } $cheet = [ 2829129, 2829129, 2829129, 2829129, 2829387, 2960716, 2960461, 2960463, 3026256, 3026256, 3092563, 3092563, 3158614, 3158615, 3224408, 3290202, 3356252, 3356252, 3356252, 3356767, 3357024, 3553376, 3618913, 3618913, 3553891, 3684707, 3750243, 3684706, 3684707, 3684707, 3684707, 3750243, 3618914, 3618913, 3684450, 3750243, 3750243, 3750243, 3750243, 3750243, 3684706, 3618913, 3618913, 3618913, 3684450, 3684706, 3684706, 3684450, 3684450, 3750243, 3750243, 3684450, 3684706, 3750243, 3618913, 3618913, 3618913, 3684448, 3749727, 3749727, 3749727, 3749727, 3749727, 3749470, 3749469, 3749469, 3749721, 3749720, 3749720, 3814998, 3814997, 3880534, 3880533, 3946835, 3881042 ]; function checkStart($sx, $sy) { global $cheet; global $image; for ($i = 0; $i < 75; $i++) { $rgb = imagecolorat($image, $sy + $i, $sx); if (!similar($rgb, $cheet[$i])) { return false; } } return true; } function screencap() { ob_start(); system('adb shell screencap -p /sdcard/screen.png'); system('adb pull /sdcard/screen.png .'); ob_end_clean(); } function press($time) { system('adb shell input swipe 500 1600 500 1601 ' . $time); } for ($id = 0; ; $id++) { echo sprintf("#%05d: ", $id); // 截图 screencap(); // 获取坐标 $image = imagecreatefrompng('screen.png'); list($sx, $sy) = getStart(); list($tx, $ty) = getEnd(); if ($sx == 0) break; echo sprintf("(%d, %d) -> (%d, %d) ", $sx, $sy, $tx, $ty); // 图像描点 imagefilledellipse($image, $sy, $sx, 10, 10, 0xFF0000); imagefilledellipse($image, $ty, $tx, 10, 10, 0xFF0000); imagepng($image, sprintf("screen/%05d.png", $id)); // 计算按压时间 $time = pow(pow($tx - $sx, 2) + pow($ty - $sy, 2), 0.425) * PRESS_TIME; $time = round($time); echo sprintf("time: %f\n", $time); press($time); // 等待下一次截图 sleep(SLEEP_TIME); }
<?php /** * 按压力度参数,根据实际表现进行调节 * 如果跳远了就调低点 */ //define('PRESS_TIME', 3.752); define('PRESS_TIME', 3.452); /** * 睡眠时间 */ define('SLEEP_TIME', 2); /** * 角色宽度,不需要调节 */ define('BODY_WIDTH', 75);
#I am the dividing line
# Another method
function jump() { sleep(2.5);//延迟 2.5 秒,音乐盒、便利店、井盖等站 2 秒加分 $screenShell = "cd D:\&adb shell /system/bin/screencap -p /sdcard/screenshot.png&adb pull /sdcard/screenshot.png d:jumper/screenshot.png"; exec($screenShell);//截图 $i=imagecreatefrompng("d:jumper/screenshot.png");//读取图片 $point=array(); for ($y=400;$y<imagesy($i);$y++) {//从第 400 行开始,避开上部内容 for ($x=0;$x<imagesx($i);$x++) {//横向扫描 $rgb = imagecolorat($i,$x,$y);//取得颜色 $point["now"]["r"] = ($rgb>>16) & 0xFF; $point["now"]["g"] = ($rgb>>8) & 0xFF; $point["now"]["b"] = $rgb & 0xFF; if(isset($point["last"]["r"])){ if(!isset($point["x"]["a"])){ if( abs($point["now"]["r"]-$point["last"]["r"])>1 or abs($point["now"]["g"]-$point["last"]["g"])>1 or abs($point["now"]["b"]-$point["last"]["b"])>1 ){ $point["x"]["a"]=$x; if(imagesx($i)/2>$x){ $point["direction"]="left"; }else{ $point["direction"]="right"; } $point["a"]=$point["last"]; } }else{ if($point["now"]==$point["a"]){ $point["x"]["b"]=$x-1; break; } } } $point["last"]=$point["now"]; } if(isset($point["x"])){ break; } } $param["left"] = 3750; $param["right"] = 3100; $time = pow((abs(imagesx($i)/2-($point["x"]["a"]+$point["x"]["a"])/2)/imagesx($i)),1)*$param[$point["direction"]]; if($time<400){ $time+=($param[$point["direction"]]/300); } $time = round($time,0); echo "direction:".$point["direction"]; echo "\nx.a:".$point["x"]["a"]; echo "\nx.b:".$point["x"]["b"]; echo "\ntime:".$time."\n"; $touchShell = "cd D:\&adb shell input swipe 50 250 250 250 ".$time; exec($touchShell); imagedestroy($i); jump(); } jump();
For more information, you can refer to the special topic "WeChat Jump" to learn.
The above is the entire content of this article. I hope it will be helpful to everyone's study. I also hope that everyone will support the php Chinese website.
Articles you may be interested in:
Explanation of PHP parsing xml format data tool class examples
############The difference between class static calls and range parsing operators in PHP#### #######################The above is the detailed content of Detailed explanation of WeChat Tiaoyitiao PHP code implementation. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

11 Best PHP URL Shortener Scripts (Free and Premium)

Working with Flash Session Data in Laravel

Simplified HTTP Response Mocking in Laravel Tests

Build a React App With a Laravel Back End: Part 2, React

cURL in PHP: How to Use the PHP cURL Extension in REST APIs

12 Best PHP Chat Scripts on CodeCanyon
