剑仙十号 外挂工程师
关注数: 19 粉丝数: 442 发帖数: 3,966 关注贴吧数: 96
原神。做视觉转动的脚本 在做原神视频,想做一个丝滑的视角转动效果,但是手动控制的话,肯定是做不到完美的,所以想用脚本.控制视角的转动。 但是有个问题,原神的鼠标位置,是固定在最中间的,视角转动的时候 鼠标位置没有变化,我想通过控制鼠标移动来转动视角,但感觉根本没法实现 有没有大佬有解决方案 泥蝶:首先 不要用鼠标移动()。 原神的鼠标 是焊死在屏幕中间的,鼠标移动()没用,得用鼠标相对移动() 经过测试,鼠标相对移动() 是软件模拟,原神好像不吃这一套。超级鼠标相对移动() 有用。 1是硬件 必须圆孔鼠标。2是驱动级的。 我是USB,难怪1没用,2有用 超级鼠标相对移动(3600, 0),在水平方向 正好能转动180度视角。 我游戏里设置的水平灵敏度是2,如果不是,你就要自己去测移动距离等效是多少角度,这个比值和灵敏度好像不是线性的,试了在4的灵敏度下,3600会转大约410度。 另外帧数会略微影响转的精准程度,我的原神是帧数解锁器启动的,一百多帧。如果锁死60帧,每次转动会少转那么3-5度,推测帧数更低的话转得会更少。 不知道和屏幕分辨率有没有关系,有点麻烦懒得测了。 然后如果要平滑转动视角就用个循环,每次移动一点点,每过几毫秒再移动一次 类似这样 for(var i=0; i<600; i++) 超级鼠标相对移动(24, 9) sleep(4) end 测试环境:tc简单开发 7.0,效果图:
原神。做视觉转动的脚本 在做原神视频,想做一个丝滑的视角转动效果,但是手动控制的话,肯定是做不到完美的,所以想用脚本.控制视角的转动。 但是有个问题,原神的鼠标位置,是固定在最中间的,视角转动的时候 鼠标位置没有变化,我想通过控制鼠标移动来转动视角,但感觉根本没法实现 有没有大佬有解决方案 泥蝶:首先 不要用鼠标移动()。 原神的鼠标 是焊死在屏幕中间的,鼠标移动()没用,得用鼠标相对移动() 经过测试,鼠标相对移动() 是软件模拟,原神好像不吃这一套。超级鼠标相对移动() 有用。 1是硬件 必须圆孔鼠标。2是驱动级的。 我是USB,难怪1没用,2有用 超级鼠标相对移动(3600, 0),在水平方向 正好能转动180度视角。 我游戏里设置的水平灵敏度是2,如果不是,你就要自己去测移动距离等效是多少角度,这个比值和灵敏度好像不是线性的,试了在4的灵敏度下,3600会转大约410度。 另外帧数会略微影响转的精准程度,我的原神是帧数解锁器启动的,一百多帧。如果锁死60帧,每次转动会少转那么3-5度,推测帧数更低的话转得会更少。 不知道和屏幕分辨率有没有关系,有点麻烦懒得测了。 然后如果要平滑转动视角就用个循环,每次移动一点点,每过几毫秒再移动一次 类似这样 for(var i=0; i<600; i++) 超级鼠标相对移动(24, 9) sleep(4) end 测试环境:tc简单开发 7.0,效果图:
【剑仙教程】多线程篇。多个线程,能共用同一个子函数? 【剑仙教程】多线程篇。多个线程,能共用同一个子函数? 说不得 22:44:28 有大神在吗? 请教个问题:大漠绑定多窗口并同时操作怎么实现? 整装出发 22:47:27 每条线程 对应一个窗口 每个窗口 对应一个大漠对象 说不得 22:47:41 说下我的方法: 传参:ai dm[ai].findstr(xa,ya,xb,yb,string,color_format,sim,intX[ai],intY[ai]) 说不得 22:49:18 每个窗口对应大漠对象的时候,intx和inty也互相干扰... 说不得 22:49:37 这样的话,以后的代码可是有的写了... 有没有简单的办法? 坤 09:20:33 多开的话。尽量少用全局变量。需要使用的话记得用数组。 如果是函数内部的局部变量的话,那是不影响的,可以所有窗口公用的 ======================================================= intx和inty,你定义为全局变量 有什么意义? 都是操作完就释放,定义为局部变量就行 多线程 共用同一个子函数。 定义在子函数.里面的局部变量,重名的 也不会相互干扰,相互影响 关键词:全局变量 局部变量 . 四大内存分区: 堆区和自由储存区、 栈区、 静态存储区(全局变量 常量), 代码区(代码的十六进制编码 字符串常量) 全局变量 是在静态存储区 分配内存, . 局部变量 在栈区 分配内存。 多条线程 调用子函数,就会有多个栈。每个子函数的局部变量,分配到的内存块 不一样。 所以多条线程,调同一个子函数。子函数.局部变量的数据,完全不会相互覆盖,相互冲突。 百度搜索:四大内存分区, 子函数的参数和局部变量,入栈出栈的原理, 就清清楚楚了。 这两个知识点,非常重要。在查找内存数据、找call写call时 都要用到, ======================================================= 多线程篇。多个线程,能共用一个子函数? 前台脚本,因为只有一套前台鼠键。多个线程,不能共用同一个子函数。 除非使用 临界区进入(),鼠键操作,临界区离开() 后台脚本,因为它有多套鼠标键盘,互不影响。所以多个线程,能共用同一个子函数。
A星寻路算法。单元格的中心点  第一步:采集地图数据:把小地 A星寻路算法。单元格的中心点 第一步:采集地图数据:把小地图分成M横行,之后把每行 分成N列。根据小地图实际情况来,分好的单元格要粗点,不能太小。 . 这样小地图就分成了一个表。 在能通行的单元格,标上白色。 在不能通行的单元格,标上黑色。 第二步:每一个单元格,都是一个矩形区域。获取每个单元格的左上角座标,右下角座标,中心点座标。 . 首先获取小地图左上角的座标(Lx, Ly),右下角的座标(Rx, Ry) 在划分单元格时,每个横行距离是确定的。每个横行_划分竖列的距离,也是确定的。 W = (Rx-Lx)/N //单元格宽度 H = (Ry-Ly)/M //单元格高度 . W2 = 单元格宽度/2 //半个单元格宽度 H2 = 单元格高度/2 //半个单元格高度 . for(var i=0; i<M; i++) for(var j=0; j<N; j++) //名称:单元格MN, //数组:单元格[M][N] 左上座标(Lx+W*j, Ly+H*i), 右下座标(Lx+W*(j+1), Ly+H*(i+1)), 中心点座标(Lx+W*j+W2, Ly+H*i+H2) //这样可以把每个单元格,看成一个字符串变量,,把6个座标值和一个通行值,用","分割打包到字符串型变量。 //也可把每个单元格,看成一个int类型数组,,把6个座标值和一个通行值,储存到数组元素:arr座标[0],arr座标[1],arr座标[2],arr座标[3],arr座标[4],arr座标[5],arr座标[6] end end 第三步:获取角色的起点座标(当前座标)。用来确定角色_当前处在哪个单元格。 获取终点座标。再确定终点座标,处在哪个单元格。 第四步:套入 A星寻路算法,得到行走路径。 2D游戏。用键盘控制的游戏就容易点,不需要调整人物朝向。 . 3D游戏。把人物朝向调整到正北。调整到目标朝向。 之后以单元格的中心点座标_为节点,从一个单元格中心点 移动到另一个单元格中心点。 如此循环,到达终点单元格,终点座标。break. 原创作品。转载请标明作者,标明出处. 这只是一种操作方法。楼主到简单游 观摩脚本。发现其它脚本作者,还有更好的操作方法:标记每个像素点:能通行/ 不能通行,再通过像素点寻路。 大神们不要藏着掖着。分享出更多的操作方法,共同学习,共同进步。减少重复造轮子的时间。   
A星寻路算法。单元格的中心点  第一步:采集地图数据:把小地 A星寻路算法。单元格的中心点 第一步:采集地图数据:把小地图分成M横行,之后把每行 分成N列。根据小地图实际情况来,分好的单元格要粗点,不能太小。 . 这样小地图就分成了一个表。 在能通行的单元格,标上白色。 在不能通行的单元格,标上黑色。 第二步:每一个单元格,都是一个矩形区域。获取每个单元格的左上角座标,右下角座标,中心点座标。 . 首先获取小地图左上角的座标(Lx, Ly),右下角的座标(Rx, Ry) 在划分单元格时,每个横行距离是确定的。每个横行_划分竖列的距离,也是确定的。 W = (Rx-Lx)/N //单元格宽度 H = (Ry-Ly)/M //单元格高度 . W2 = 单元格宽度/2 //半个单元格宽度 H2 = 单元格高度/2 //半个单元格高度 . for(var i=0; i<M; i++) for(var j=0; j<N; j++) //名称:单元格MN, //数组:单元格[M][N] 左上座标(Lx+W*j, Ly+H*i), 右下座标(Lx+W*(j+1), Ly+H*(i+1)), 中心点座标(Lx+W*j+W2, Ly+H*i+H2) //这样可以把每个单元格,看成一个字符串变量,,把6个座标值和一个通行值,用","分割打包到字符串型变量。 //也可把每个单元格,看成一个int类型数组,,把6个座标值和一个通行值,储存到数组元素:arr座标[0],arr座标[1],arr座标[2],arr座标[3],arr座标[4],arr座标[5],arr座标[6] end end 第三步:获取角色的起点座标(当前座标)。用来确定角色_当前处在哪个单元格。 获取终点座标。再确定终点座标,处在哪个单元格。 第四步:套入 A星寻路算法,得到行走路径。 2D游戏。用键盘控制的游戏就容易点,不需要调整人物朝向。 . 3D游戏。把人物朝向调整到正北。调整到目标朝向。 之后以单元格的中心点座标_为节点,从一个单元格中心点 移动到另一个单元格中心点。 如此循环,到达终点单元格,终点座标。break. 原创作品。转载请标明作者,标明出处. 这只是一种操作方法。楼主到简单游 观摩脚本。发现其它脚本作者,还有更好的操作方法:标记每个像素点:能通行/ 不能通行,再通过像素点寻路。 大神们不要藏着掖着。欢迎大家分享出’更好的操作方法,共同学习,共同进步。减少重复造轮子的时间。   
A星寻路。单元格的中心点  第一步:采集地图数据:把小地图分 A星寻路。单元格的中心点 第一步:采集地图数据:把小地图分成M横行,之后把每行 分成N列。根据小地图实际情况来,分好的单元格要粗点,不能太小。 . 这样小地图就分成了一个表。 在能通行的单元格,标上白色。 在不能通行的单元格,标上黑色。 第二步:每一个单元格,都是一个矩形区域。获取每个单元格的左上角座标,右下角座标,中心点座标。 . 首先获取小地图左上角的座标(Lx, Ly),右下角的座标(Rx, Ry) 在划分单元格时,每个横行距离是确定的。每个横行_划分竖列的距离,也是确定的。 W = (Rx-Lx)/N //单元格宽度 H = (Ry-Ly)/M //单元格高度 . W2 = 单元格宽度/2 //半个单元格宽度 H2 = 单元格高度/2 //半个单元格高度 . for(var i=0; i<M; i++) for(var j=0; j<N; j++) //单元格MN, 左上座标(Lx+W*j, Ly+H*i), 右下座标(Lx+W*(j+1), Ly+H*(i+1)), 中心点座标(Lx+W*j+W2, Ly+H*i+H2) //这样可以把每个单元格,看成一个字符串变量,,把6个座标值和一个通行值,用","分割打包到字符串型变量。 //也可把每个单元格,看成一个int类型数组,,把6个座标值和一个通行值,储存到数组元素:arr座标[0],arr座标[1],arr座标[2],arr座标[3],arr座标[4],arr座标[5],arr座标[6] end end 第三步:获取当前座标,确定当前人物,处在哪个单元格。 获取目标座标。再确定目标座标,处在哪个单元格。 第四步:套入 A星寻路算法,得到行走路径。 调整人物朝向,以单元格中心点_为节点,从一个单元格中心点 移动到另一个单元格中心点。 如此循环,到达目标单元格,目标座标点,break. 原创作品。转载请标明作者,标明出处. 这只是一种操作方法。欢迎大家分享’更多的操作方法,共同学习,共同进步.   
【中控笔记】双头硬件盒子。局域网传输图片 仙人 :使用采集卡 【中控笔记】双头硬件盒子。局域网传输图片 仙人 : 使用采集卡之后不识别了 像素相同的地方太多 厚德载物 : 今天到简单游,观摩大佬的双头脚本,领悟到 不使用采集卡,也能采集图片的办法。 视频采集卡华而不实,翻录教程只能勉强使用。 双头硬件盒子。 被控客户端,采用dll_传送图片数组。 主控服务器,采用dll_监*听消息,接收图片数组 这样就省下了,买视频采集卡的钱,防止图片不清晰。 一台作为服务器(主控),另一台或者多台,作为客户端(被控)。 用Delphi7 编写一个exe/ 或标准dll,在dll中编写一个函数:获取目标区域_所有像素点的三原色值,载入到内存缓冲区。 . 再用Delphi7 编写一个标准dll,在dll中编写一个函数:接收客户端_内存缓冲区,目标区域所有像素点的三原色值。 运行TC,F1_帮助文档,3.windows平台,18网络类, 用socket(套接字),编写一个服务器,调用标准dll即时接收颜色值。 判断目标颜色值,再调用双头硬件盒子 按鼠标 按键盘。 ======================================================= 下面的截图方法可以使用,但效率比较低,当是过期。 双头硬件盒子。 被控客户端,采用局域网_传送图片。 主控服务器,采用局域网*听消息,接收图片 局域网的组网方法 : http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.1&urlrefer=51e01dcdf6422556be45c014a381951c 1.1 是网关(路由器) 右键菜单_我的电脑,属性, 把需要组网的电脑,设置到同一工作组。 设置到同一IP段。http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.2&urlrefer=49fb0d20a6b3f585dde7b928dd37a65c http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.3&urlrefer=0911254a5e6ded9e17e190c6693b77da http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.4&urlrefer=0dbfe3cb101c05476c7705b46f4f5f72 1.3 192。16http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.255&urlrefer=f8523e16941fb33981974ab75934cf46 …… ………… 192。168.1.255 每台组网的计算机名字,也设置一下。 A2 A3 A4 ………… ………… A255 如果组网成功,到网上邻居,查看其它电脑,就能看到“共享”的文件夹。 ======================================================= 之后到 客户机 A2,D盘新建一个文件夹 :pic2 客户机 A3,D盘新建一个文件夹 :pic3 客户机 A4,D盘新建一个文件夹 :pic4 ………… ………… 客户机 A255,D盘新建一个文件夹 :pic255 ======================================================= 局域网_共享,访问bmp 右键单击这个 pic2目录,属性,设置为共享。 用TC图色类函数,对被控机_区域截图,保存到pic2目录: var ret=截图(0,0,500,500,"d:\\pic2\\qq。bmp") 客户机 A2,先共享目录 pichttp://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F192.168.1.2&urlrefer=49fb0d20a6b3f585dde7b928dd37a65c 的电脑:地址栏输入 A2\\192。168.1.2 ,就可以访问到 pic2目录 服务器,在我的电脑:地址栏http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fqq.bmp&urlrefer=09a8aedc83949d1083cbeba7fda5cca3 92。168.1.2\\pic2\\http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fqq.bmp&urlrefer=09a8aedc83949d1083cbeba7fda5cca3 就可以访问到目标图片。 按局域网_地址,在图片中找图,就可以实现主控机_从被控机中找图。不需要视频采集卡。 再根据需要,在主控机,调用被控机的双头盒子 来按鼠标 按键盘。 搞DNF,必须注意_行为检测。 大多数人搞DNF,是死在行为检测上。 方法 :键盘按下() 等待(随机数(1,50)) 键盘弹起() 用鼠标移动轨迹。模拟手动操作 找到图片 返回座标(x, y),鼠标左键点击(x+随机数(1,50), y+随机数(1,50))
首页 1 2 下一页