注册时间
最后登录
新帖
发布在 脚本需求 阅读更多

console.show();
a = java.lang.System.currentTimeMillis;
b = a();
while (true) {
c = a();
log(c);
if (c - b > 10000) {
break;
}
}
//在不修改上面代码的前提下,怎么让上面这段代码在5秒钟内运行完,增加代码不可以使用上面变量

发布在 脚本需求 阅读更多

可以,把 autojs和你要连点的软件放在同一个多开分身里多开,然后就可以免root免无障碍连点了。

发布在 脚本需求 阅读更多

console.show();
a = java.lang.System.currentTimeMillis;
b = a();
while (true) {
c = a();
log(c);
if (c - b > 10000) {
break;
}
}
//在不修改上面代码的前提下,怎么让上面这段代码在5秒钟内运行完,增加代码不可以使用上面变量

发布在 脚本需求 阅读更多

让游戏加速到2倍的速度运行,源码该怎么写,想法是,把autojs和要变速的游戏多开在同一个进程下,只要autojs内部能变速,其他软件也就能用多开的方法变速,就像烧饼加速器那样变速

发布在 脚本需求 阅读更多

要一个vpn抓包修改指定内容脚本

发布在 脚本需求 阅读更多

之前有问过解决了,忘了,代码怎样写

发布在 脚本发布 阅读更多

//自己打乱再拼好,好玩的很
"ui";//玩法,自己先打乱,然后慢慢拼。
ui.statusBarColor("#AA0000");
ui.layout(
<frame background="#AA0000">
<vertical align="top" margin="5">
<img id="img" bg="#ffffff" w="350" h="350" margin="1 0 0 0"/>
<linear>
<vertical w="170">
<text text="步数:" color="#000000" size="64"/>
<text id="分数" text="0" gravity="center" color="#ffffff" size="34"/>
</vertical>
<vertical>
<linear>
<button margin="0 0 0 60" h="60" w="60" id="up" text="上"></button>
</linear>
<linear>
<button h="60" w="60" id="left" text="左"></button>
<button h="60" w="60" id="ok" text="ok"></button>
<button h="60" w="60" id="right" text="右"></button>
</linear>
<linear>
<button margin="0 0 0 60" h="60" w="60" id="down" text="下"></button>
</linear>
</vertical>
</linear>
</vertical>
</frame>
);
importClass(android.graphics.Paint);
importClass(android.graphics.Canvas);
importClass(android.graphics.Bitmap);
importClass(android.graphics.Matrix);
importClass(android.content.Intent);
importClass(android.net.Uri);
var 分享否=0;
var sdpath =android.os.Environment.getExternalStorageDirectory();//获取跟目录
ui.ok.click(() => {
分享否=1;
});
ui.img.click(() => {
var qq群号="604847405";
app.startActivity({
action: "android.intent.action.VIEW",
data:"mqqapi://card/show_pslcard?card_type=group&uin="+qq群号,
packageName: "com.tencent.mobileqq",
});//打开qq群名片
});
threads.start(function(){
while(true){
if(分享否==1){
shareI(存图(绘大图()));
分享否=0;
}else{

}
}
});
function shareI(图) {
var imageUri = Uri.fromFile(new java.io.File(图));
var shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/*");
context.startActivity(Intent.createChooser(shareIntent, "分享到"));
}
function 存图(bitmap){
var path0=sdpath+"/DCIM/"+new Date().getTime()+".png";
var mFile = new java.io.File(path0);
var mFileOutputStream = new java.io.FileOutputStream(mFile);
bitmap.compress(Bitmap.CompressFormat.PNG,100,mFileOutputStream);
return path0;
}

var path=sdpath+"/DCIM/1.png";
var url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527552170666&di=b037be211dbc825cedc08962ded558ef&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Fb90e7bec54e736d1a24f53dc91504fc2d4626982.jpg";
url="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527621586081&di=56704ebe9c5be8afd72b017794651c2b&imgtype=0&src=http%3A%2F%2F03.imgmini.eastday.com%2Fmobile%2F20180414%2F503ac89a3d08d6a62b11304199f3a2c3_wmk.jpeg";
threads.start(function(){
files.writeBytes(path, http.get(url).body.bytes());
});
while(!files.exists(path)){sleep(100);};

var 图片=android.graphics.BitmapFactory.decodeFile(path);
var scaleWidth =1200/图片.width;
var scaleHeight=750/ 图片.height;
// 取得想要缩放的matrix参数
var matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// 得到新的图片
var bitMap = Bitmap.createBitmap(图片, 0, 0, 图片.width, 图片.height, matrix, true);
//alert(Object.keys(图片));
var bit=new Array();
for(var i=0;i<5;i++){
bit[i]=new Array();
for(var j=0;j<8;j++){
eval("bit["+i+"]["+j+"] = Bitmap.createBitmap(bitMap,"+j150+","+i150+", 150, 150)");
}
}
bit[5]=new Array();
bit[5][0]=Bitmap.createBitmap(150,150,Bitmap.Config.ARGB_8888);
var canvas0 = new Canvas(bit[5][0]);
canvas0.drawARGB(255,255,255,255);
function 绘大图(){
var 全图=Bitmap.createBitmap(1080,1080,Bitmap.Config.ARGB_8888);
var canvas = new Canvas(全图);
canvas.drawARGB(255,155,120,90);
var paint = new Paint();
//var 宽间隔=(1080-14-(宽-1)*5)/宽;
// var 长间隔=(1080-14-(长-1)*5)/长;

for(var i=0;i<6;i++){

for(var j=0;j<8;j++){
eval('var 数图=bit['+i+']['+j+'];');
var scaleWidth =100/数图.width;
var scaleHeight=100/ 数图.height;
// 取得想要缩放的matrix参数
var matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// 得到新的图片
var 元素图= Bitmap.createBitmap(数图, 0, 0, 数图.width, 数图.height, matrix, true);
eval('canvas.drawBitmap(元素图'+','+(j*(100+5)+140)+','+(i*(100+5)+170)+',paint)');
if(i>=5){j=8;}
}}

canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
return 全图;
}
var 空白x=0;
var 空白y=5;
ui.up.click(() => {
try{
var 临时图=bit[空白y+1][空白x];
bit[空白y+1][空白x]=bit[空白y][空白x];
bit[空白y][空白x]=临时图;
空白y=空白y+1;
ui.img.setImageBitmap(绘大图());

}catch(e){};

});
ui.down.click(() => {
try{
var 临时图=bit[空白y-1][空白x];
bit[空白y-1][空白x]=bit[空白y][空白x];
bit[空白y][空白x]=临时图;
空白y=空白y-1;
ui.img.setImageBitmap(绘大图());

}catch(e){};

});
ui.left.click(() => {
try{
if(bit[空白y][空白x+1]==null){bit[99][空白x-1]=0;}
//
var 临时图=bit[空白y][空白x+1];
bit[空白y][空白x+1]=bit[空白y][空白x];
bit[空白y][空白x]=临时图;
空白x=空白x+1;
ui.img.setImageBitmap(绘大图());

}catch(e){};

});
ui.right.click(() => {
try{
if(bit[空白y][空白x-1]==null){bit[99][空白x-1]=0;}
//
var 临时图=bit[空白y][空白x-1];
bit[空白y][空白x-1]=bit[空白y][空白x];
bit[空白y][空白x]=临时图;
空白x=空白x-1;
ui.img.setImageBitmap(绘大图());

}catch(e){};

});
var 大图=绘大图();
ui.img.setImageBitmap(大图);

发布在 脚本需求 阅读更多
requestScreenCapture();//请求截图
n=device.width/1080;
v=device.height/1920;
zzz=0;
sfr="no";
try{
root_automator = new RootAutomator();sfr="root";}catch(e){
sfr="noroot";
}



var window = floaty.window(
<frame>
<text id="action" text="+" color="#ff0000" bg="#00000000" />
</frame>
);//window.setPosition(-1000,-1000);//建立悬浮窗并隐藏
console.show();//显示控制台
setInterval(()=>{/*操作ui*/
awc = 10; //比色误差
function capturescreen() {
while (true) {
if (ajt = captureScreen()) {
return ajt;
break;
}
}
} //获取截图,返回图片对象
function qs(a, b, c) {
return images.pixel(a, b, c);
} //取色函数简化为qs(),方便后面调用,也可以写成qs=images.pixel;
function abs(a7, a8) {
if (Math.abs(colors.red(a7) - colors.red(a8)) < awc && Math.abs(colors.green(a7) - colors.green(a8)) < awc && Math.abs(colors.blue(a7) - colors.blue(a8)) < awc) {
return true;
} else {
return false;
}
}//比色函数,比色误差为第10行定义的
var vid=1.13;//点击按屏时间系数
function akzt(str) {
log(str);
//log(packageName("com.stardust.scriptdroid").className("android.widget.Button").id("submit").text("确定"));
new java.lang.Thread(function() {
packageName("com.stardust.scriptdroid").className("android.widget.EditText").setText("1.13");
}).start();
 vid=console.rawInput("","");
} //重新输入时间系数并开始的控制台,默认输入系数1.13,vid由1.23变为1.13
function akzt2() {
new java.lang.Thread(function() {
packageName("com.stardust.scriptdroid").className("android.widget.EditText").setText("暂停");
kz=console.rawInput("点击确定暂停脚本", "");
}).start();
} //执行中暂停脚本的控制台
function zrw(a) {
var pos = findColor(a, "#383653",{//在图片a里找这个颜色
region: [100*n,510*v,979*n,1090*v],//屏幕区域范围
threshold: 4//4线程找色
});
if (!pos) {//如果没找到返回null,不再往下执行
return null;
}
pos.x+=-3*n;//执行到这里说明找到了,x加-3得到人头棋子顶部的中心位置坐标
pos.y+=185*v;//找的颜色是人头棋子的头顶坐标y加185得到人头棋子脚部坐标
return pos;//返回人头棋子的坐标
} //以上是找人物坐标函数块
function zdd0(tp,tmp) {//找下个位置图块的顶点位置
var y1=0;//用来记录向下扫描找到的第一个顶点的y坐标
var pxt1=100*n;//
var pxt2=510*n;//这是在屏幕中心轴左边扫描的x的范围,顶点有可能出现在这个范围
if(tmp<540*n){pxt1=570*n;pxt2=980*n;}//tmp是找到的人物的x坐标,如果人物在左边,那么下个图块顶点肯定就在右边冲定义x范围
for (var y0 = 510*v; y0 < 980*v; y0 +=10*v) {//粗略扫描,y起始和y结尾,每行扫描完如果没扫到顶点往下进十继续扫
var  ys = qs(tp, 563*v, y0);//取背景颜色
for (var x0=pxt1; x0<pxt2; x0 +=10*v) {//x也是粗略扫描,每次加10
if (abs(ys, qs(tp, x0, y0))) {//和背景颜色比色,颜色一样什么都不做
} else {//颜色不一样,说明这是顶点
y1=y0;//用y1记录这个粗略顶点y坐标
y0 = 1090*v;//
x0 = pxt2;//给x,y赋超过范围值结束for循环
}//比色结束
}//y0行x扫描结束
}//整个顶点粗扫描结束
if(y1==0){return false;}//如果粗略坐标是零,说明没找到顶点的y值,说明顶点不存在,返回错误值
var as3=0;//
var as4=0;//记录多个顶点x的左右边界
for(y0=y1;y0>510*v;y0--){//从粗顶点y坐标y1向上细扫
var as1 = 0;//
var as2 = 0;//临时左右边界x值
var ok=0;//一行中背景色的个数
for (x0 = pxt1; x0 < pxt2; x0++) {//x范围的扫描
if (abs(ys, qs(tp, x0, y0))) {//比色,背景色就是粗扫y1的背景色,游戏特性原因细扫背景颜色变化可以忽略,不用重新获取背景颜色
/*颜色是背景色*/if (as1 != 0 && as2 == 0) {//as1不为0被赋值过又是背景色说明这是x左边界+1,记录
as2 = x0;x0=pxt2;//x赋值结束继续扫
}
ok++;//背景色个数加1
} else {//不是背景色,也就是说明是顶点色
if (as1 == 0) {
as1 = x0;
}//第一次扫到非背景色是x左边界,并记录
}//一次比色判断完
}//一行比色判断完
if(ok>pxt2-pxt1-1){y0=510*v;}else{
as3=as1;as4=as2;//如果这不是y边界,把x边界的的记录值赋值给as3,as4
}//如果这一行背景色410个,说明这行全是背景色,图块不在这行,那么赋y值最大值结束for循环,执行到了这行,说明上一行就是精确顶点,两顶点x不再重新赋值
}
var as = parseInt((as3 + as4-1) / 2);//由精确顶点两x计算平均值得到精确x唯一值
return as;//返回精确顶点x坐标
}//找顶点坐标结束
    
    
    
kz=1;//脚本运行暂停控制值


while (true) {//死循环
x=0;xk=0;if(kz!=0){akzt("点击确定开始执行,系数越大跳的越远,把此悬浮窗拖到左下角");kz=0;zt0=(new Date()).getTime();
akzt2();//暂停控制
}//x坐标0,xk坐标相同次数
while(true){//死循环找人物棋子
sleep(100);//手机休息一下不要太卡
tp = capturescreen();//获取截图
rwzb=zrw(tp);//找人物棋子坐标
if(rwzb!=null){if(x!=rwzb.x){//找到x不同赋给x
x=rwzb.x;
}else{
xk++;//和上次找到的x一样就计数
if(xk>1){break;}//连续超过1次一样说明棋子不动了,棋子就是在这个位置进行下一次跳,跳出找人物棋子死循环
}}//不为null才继续不然出错
}//找人物棋子坐标结束
rwzb.y+=3*v;//之后又发现的y坐标误差,加上去的
window.setPosition(rwzb.x-50*n, rwzb.y-68*v);//把悬浮窗人物棋子脚部169,226移到人物坐标棋子脚部,可以直观显示方便调试
ddzb=zdd0(tp,rwzb.x)+5*n;//找下个图块顶点x坐标,5是后来调试发现的误差加上去的
dcx=563*n;//对称中心x
dcy=981*v;//对称中心y,人物棋子所在方块中心坐标和下个方块中心坐标是对称的,对称点就是这个,多次调试测出
qx=ddzb;//qx赋值为顶点坐标
qy=parseInt(dcy-Math.abs((qx-dcx)/1.725));//根据图块中心x和对称点坐标计算出图块中心y//左右两条不同的路径是互相垂直并且对称,2d转3d,根据x和固定比例算出x:y=1:1的y的屏幕坐标值(1.725是测量两个图块中心点的连线x/y算出来的,我也忘了);
window.setPosition(qx-50*n, qy-68*v)//把悬浮窗脚部移到图块中心,方便观察结果进行进一步调试
x=Math.abs(qx-rwzb.x)/n;//计算出x的距离
y=parseInt((rwzb.y-qy)*(1.725))/v;//计算出x比例下的y的距离
time=parseInt(Math.sqrt((x*x)+(y*y))*vid);//计算出x比例下的距离并乘以时间系数得到精确的点击按压时间
time2=x*1.66;//假如每次都能跳到中心完美点,可以只用x乘另一个时间系数得到精确按压时间,实践证明这不可能。所以这句可有可无
presso(963*n+random(-20,20),1588*v+random(-50,50),time);//随便找一点可以操作的点进行精确时间点击
sleep(100);window.setPosition(-1000,-1000);sleep(500);//延时越长越稳定//点击完延时0.x秒,隐藏悬浮窗,避免挡截图
}//死循环,永不结束
},1000);//感觉这个1000没什么用,反正就知道只要是有悬浮窗的,代码放setInterval里就能和悬浮窗同时运行

function presso(x, y, duration){
    log(duration);
    var t0=(new Date()).getTime();
    if(device.sdkInt >= 24){
        press(x, y, duration);
    }else{
        if(sfr=="root"){
        root_automator.press(x, y, duration);}else{
           alert("不是安卓7.0以上也没有root权限");
            exit();
        }
    }
    var t1=(new Date()).getTime();
    console.info(t1-t0);
}//root与非root通用判断






与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待