剑仙十号
外挂工程师
关注数: 19
粉丝数: 442
发帖数: 3,966
关注贴吧数: 96
为什么后台组合键,识别不出来? 为什么后台组合键,识别不出来? 单独后台按键的,就能识别出来 前台按下。 后台按键, 前台弹起。 人才呀 我怎么就没想到用这种方式 完美解决。源码: 键盘按下(17) 等待(111) 窗口提交按键(窗口句柄1, 49) 窗口提交按键(窗口句柄2, 49) 窗口提交按键(窗口句柄3, 49) 窗口提交按键(窗口句柄4, 49) 窗口提交按键(窗口句柄5, 49) 等待(150) 键盘弹起(17)
tc。双精度浮点数怎么搞 tc。双精度浮点数怎么搞 你要整多少位的小数。 16位左右 至少要double (8字节),或者long long (8字节)。源码: //------结构体类型定义------ //double,占位8字节,双精度浮点数 var point = array() point["x"] = array("double"=1,"value"=0) point["x"]["value"] = 3.141592653 messagebox(point["x"]["value"]) @厚德载物。 它会自动四舍五入,还是六位小数。 ======================================================= 闲得慌 14:49:45 TC的变量本身是支持双精度浮点的,不需要特别指定, 只不过 是在调试输出时 显示是单精度 功能 test() var t = 1. 22222222222222 var x= 0.1111111111111 traceprint(t) traceprint(x) var P = jsoncreate() jsonpushdouble(P, "双精度小数", t+x) var conent = jsontostring(P) jsonfree(P) traceprint(conent) 结束 . 追忆逝水流年 16:32:29 @闲得慌 搞定了!谢谢大神
原神。做视觉转动的脚本 在做原神视频,想做一个丝滑的视角转动效果,但是手动控制的话,肯定是做不到完美的,所以想用脚本.控制视角的转动。 但是有个问题,原神的鼠标位置,是固定在最中间的,视角转动的时候 鼠标位置没有变化,我想通过控制鼠标移动来转动视角,但感觉根本没法实现 有没有大佬有解决方案 泥蝶:首先 不要用鼠标移动()。 原神的鼠标 是焊死在屏幕中间的,鼠标移动()没用,得用鼠标相对移动() 经过测试,鼠标相对移动() 是软件模拟,原神好像不吃这一套。超级鼠标相对移动() 有用。 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,效果图:
【剑仙教程】获取外网IP地址,广域网IP,公网ip 【剑仙教程】获取外网IP地址,广域网IP,公网ip 编写原理.非常简单。搜索 ip地址 在页面源码里面,就有外网IP。 http获取页面源码(url, "utf-8") 先从后端获取页面源码,用正则表达式匹配(),再显示到前端。 ======================================================= 源码: var hThread 功能 执行() var url = "https://ip.chinaz.com/" //如果网址失效,可自行修改. var 页面源码 = http获取页面源码(url, "utf-8") //traceprint(页面源码) if(页面源码 != null) var pattern = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" var arr = 正则表达式匹配(页面源码, pattern, true, true, false) var bool = 是否数组(arr) if(bool == 1) traceprint(arr[0]) end end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束 原创作品。转载请标明作者,标明出处.
【剑仙教程】获取外网IP地址,广域网IP,公网ip 【剑仙教程】获取外网IP地址,广域网IP,公网ip 编写原理.非常简单。搜索 ip地址 在页面源码里面,就有外网IP。 http获取页面源码(url, "utf-8") 先从后端获取页面源码,用正则表达式匹配(),再显示到前端。 ======================================================= 源码: var hThread 功能 执行() var url = "https://ip.chinaz.com/" //如果网址失效,可自行修改. var 页面源码 = http获取页面源码(url, "utf-8") //traceprint(页面源码) if(页面源码 != null) var pattern = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" var arr = 正则表达式匹配(页面源码, pattern, true, true, false) var bool = 是否数组(arr) if(bool == 1) traceprint(arr[0]) end end 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束 原创作品。转载请标明作者,标明出处.
编程的本质,是对现实世界建模。 编程的本质,是对现实世界建模。 OA是对企业建模。 电子商务是对交易建模。 AI是对人脑建模。 ai是如何记忆的? 模拟人脑进行建模。 ai是如何思考的? 模拟人脑来思考。 机器人视觉,百度文字识别。
软件或DLL的版本号,在哪里修改 软件或DLL的版本号,在哪里修改 如图所示,已经到了1.2版本,但是鼠标右键放上去,显示默认版本号是1.0.0.0。 左侧的项目管理,选中你的项目,在右边修改。
软件或DLL的版本号,在哪里修改 软件或DLL的版本号,在哪里修改 如图所示,已经到了1.2版本,但是鼠标右键放上去,显示默认版本号是1.0.0.0。 左侧的项目管理,选中你的项目,在右边修改。
【剑仙教程】获取IP地址。内网IP,局域网IP,本机IP 【剑仙教程】获取IP地址。内网IP,局域网IP,本机IP var ms = com("MSWinsock.Winsock") traceprint(ms.LocalIP) ms = null
【CE】查找基址+偏移的方法。 【CE】查找基址+偏移的方法。 说几个规律, 1、指针变量装放的是地址。新手可以把指针变量理解成内存地址。 2、计算机要处理到的数据,都加载到内存地址。 每一个分配好的内存地址,都存放着一数据。 每个数据都对应着一地址。 重要: 这样,通过读取内存地址,可以得到数据。 通过查找游戏的数据,可以得到内存地址。 3、动态地址P0 = P1的数据 + 偏移1 动态地址,记作P0 P0的里面数据,记作Val0 一级指针变量,Pointer1,记作P1 P1的里面数据,记作Val1 偏移1,记作off1 二级指针变量,Pointer2,记作P2 P2的里面数据,记作Val2 偏移2,记作off2 基址,Base Base的里面数据,记作Val3 偏移3,记作off3 // 指针变量装放的是地址。新手也可以把指针变量理解成内存地址。 动态地址,记作P0 P0的里面数据,记作Val0 P0 = Val1 + off1 一级指针变量,Pointer1,记作P1 P1的数据[P1],记作Val1 偏移1,记作off1 P1 = Val2 + off2 二级指针变量,Pointer2,记作P2 P2的数据[P2],记作Val2 偏移2,记作off2 P2 = Val3 + off3 基址,Base Base的数据[Base],记作Val3 偏移3,记作off3 // 怎样找偏移和基址?? P0 对应 Val0 P0 = Val1 + off1 P1 对应 Val1 P1 = Val2 + off2 P2 对应 Val2 P2 = Val3 + off3 Base 对应 Val3 原创作品。禁止转载,禁止私自传播。
变换IP地址。动态节点 静态节点,sk5节点, 变换IP地址。动态节点 静态节点,sk5节点,
查找多个图片,并且返回所有找到的图像的坐标。 游戏画面.有一批复选框。 怎样把需要的复选框打勾? 把不需要的 取消打勾?
查找多个图片,并且返回所有找到的图像的坐标。 游戏画面.有一批复选框。 怎样把需要的复选框打勾? 把不需要的 取消打勾?
积木 有鼠标类,键盘类,图色类,窗口类………… 积木 有鼠标类,键盘类,图色类,窗口类………… 有流程控制类,变量和数组,有函数多线程,有系统api类 翻阅帮助文档,就像收集积木。 你手中的积木越多,对每一类积木越熟悉,能搭建的框架 就越多. ======================================================= 运行TC_F1到帮助文档,查阅一下数组类,数组就可以写了。 我以前学TC时,基本不看视频。都是翻阅帮助文档 的数组类,图色类,鼠标类,键盘类 按函数的说明,照单抓药 对号入座. 例如:数组增加元素(数组,值,键,位置) 查阅函数的返回值 和 参数1: 参数2: 参数3: 参数4: 新手先把帮助文档走一遍,再写脚本。 确实是:磨刀不误砍柴工
空间的概念,空间的理解。空间框架。 空间的概念,空间的理解。空间框架。 作者:剑仙十号. 原创作品。转载请标明作者,标明出处。 每个界面都有一个空间。 空间就是 ***.t 文件 . 每个界面都有自己专属的 .t 文件。 增加子界面,项目就会自动增加一个 .t 文件。 TC界面和界面对应的 .t文件, 在易语言中,叫窗口和窗口程序集, . vs2010和Delphi, 也有空间的概念,在这两个IDE中, 把空间 的名字换成了“单元”。 理解TC4空间的概念,再学习vs2010、delphi的单元也是十天半月的事。 编程思想都是一个样的。学会一个,再学其它语言.可以触类旁通。
为什么if语句里的内容一直执行? 为什么if语句里的内容一直执行? var a="abcd" if(a="你好") traceprint(a) end 为什么这一句里的语句会执行,搞不明白什么问题,求教 if(a=="你好") //C语言是双等号 搞错了,少打了个等号,抱歉占用大家时间
【剑仙教程】多线程篇。多个线程,能共用同一个子函数? 【剑仙教程】多线程篇。多个线程,能共用同一个子函数? 说不得 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时 都要用到, ======================================================= 多线程篇。多个线程,能共用一个子函数? 前台脚本,因为只有一套前台鼠键。多个线程,不能共用同一个子函数。 除非使用 临界区进入(),鼠键操作,临界区离开() 后台脚本,因为它有多套鼠标键盘,互不影响。所以多个线程,能共用同一个子函数。
VBS脚本引擎。实现标准的四舍五入 VBS脚本引擎。实现标准的四舍五入 作者:1907635162 //示例: 四舍五入(4.4589, 2) 功能 四舍五入(小数, 保留几位小数) var vbs = com("ScriptControl") vbs.Language= "VBScript" var s= "Cstr(Round(" & 小数 & ", " & 保留几位小数 & "))" 返回 vbs.Eval(s) 结束
VBS脚本引擎。实现标准的四舍五入 VBS脚本引擎。实现标准的四舍五入 作者:1907635162 //示例: 四舍五入(4.4589, 2) 功能 四舍五入(小数, 保留几位小数) var vbs = com("ScriptControl") vbs.Language= "VBScript" var s= "Cstr(Round(" & 小数 & ", " & 保留几位小数 & "))" 返回 vbs.Eval(s) 结束
【批处理】执行cmd命令,并获取标准输出内容 【批处理】执行cmd命令,并获取标准输出内容 obj=com("wscript.shell") ret=obj.Exec("执行的cmd语句") messagebox(ret.StdOut.ReadAll(),"标准输出内容") messagebox(ret.StdErr.ReadAll(),"标准错误内容")
【批处理】执行cmd命令,并获取标准输出内容 【批处理】执行cmd命令,并获取标准输出内容 obj=com("wscript.shell") ret=obj.Exec("执行的cmd语句") messagebox(ret.StdOut.ReadAll(),"标准输出内容") messagebox(ret.StdErr.ReadAll(),"标准错误内容")
编程的本质,是对现实建模。 编程的本质,是对现实建模。 OA是对企业建模。 电子商务是对交易建模。 AI是对人脑建模。
鼠键类。判断大写键状态 鼠键类。判断大写键状态 功能 执行() var ret = dllcall("user32.dll","long","GetKeyState","long",20) //Caps_Lock,键码20 if(ret == 0) messagebox("当前是小写状态。") elseif(ret != 0) messagebox("大写键已经锁定。") end 结束 制作原理:调用API函数,GetKeyState() 查询键码状态。 Caps_Lock,键码20 Num_Lock,键码144 Scroll_Lock,键码145 判断Caps_Lock,Num_Lock,Scroll_Lock,方法都是这样。
热血江湖端游 自动登入器怎么写?有没有人写自动登入的?游戏互 热血江湖端游 自动登入器怎么写? 有没有人写自动登入的?游戏互斥体多开,找了很多教程,都没有这样的。 有没有人大神教教? 游戏互斥体多开,郁金香mfc教程有。 是多开脚本,还是说要将游戏窗口多开?
热血江湖端游 自动登入器怎么写?有没有人写自动登入的?游戏互 热血江湖端游 自动登入器怎么写? 有没有人写自动登入的?游戏互斥体多开,找了很多教程,都没有这样的。 有没有人大神教教? 游戏互斥体多开,郁金香mfc教程有。 是多开脚本,还是说要将游戏窗口多开?
热血江湖端游 自动登入器怎么写?有没有人写自动登入的?游戏互 热血江湖端游 自动登入器怎么写? 有没有人写自动登入的?游戏互斥体多开,找了很多教程,都没有这样的。 有没有人大神教教? 游戏互斥体多开,郁金香mfc教程有。 是多开脚本,还是说要将游戏窗口多开?
投票结束,在票数上面输了。 投票结束,在票数上面输了。 关键是 按键精灵官方捆绑了10个讲师,有利益联盟。 讲师们 为了在按键精灵论坛获得一席之地,必须要投票官方。敢不投票官方? 讲师也有一些家人小号,学生小号,所以票数占优。 贴吧按键精灵 作者 爱好者 兴趣者,在拉票投票上 也非常努力,但6级以上的 连续签到3天的只有30人,所以在票数上输了。 在统战有一定问题。
垄断篇。大树之下,寸草不生。 垄断篇。大树之下,寸草不生。
按键里面有什么命令,能检查某键此时是否处于按下状态?比如 我 按键里面有什么命令,能检查某键此时是否处于按下状态? 比如 我按下了Q键,然后10秒钟之后弹起,我如何知道是不是真的弹起成功了,有没有什么命令能检测当前是否有按键处于按下的状态 萌面大侠:各位大佬,我这边编写了一段代码,想要实现 按下键盘上的3 就执行,不按就停止。正常运行是没问题的。 但按住键盘上的另一个按键(比如A)的时候,这时再按3,脚本就执行不了了,为什么呀?求大佬帮帮我。。。 k = WaitKey If k = 51 Then Call 夺命射击() Call 狂野怒火() Call 倒刺射击() Call 杀戮命令() Call 眼镜蛇射击() Else End If ======================================================= Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer Dim 返回值, key key = 81 //Q的按键码=81 返回值 = GetAsyncKeyState(key) //返回值 = 0,Q键无操作。 //返回值 = 1,Q键按下一次。 //返回值 < 0,Q键处在按下状态。 if 返回值 <> 0 then //执行操作. end if
按键里面有什么命令,能检查某键此时是否处于按下状态?比如 我 按键里面有什么命令,能检查某键此时是否处于按下状态? 比如 我按下了Q键,然后10秒钟之后弹起,我如何知道是不是真的弹起成功了,有没有什么命令能检测当前是否有按键处于按下的状态 萌面大侠:各位大佬,我这边编写了一段代码,想要实现 按下键盘上的3 就执行,不按就停止。正常运行是没问题的。 但按住键盘上的另一个按键(比如A)的时候,这时再按3,脚本就执行不了了,为什么呀?求大佬帮帮我。。。 k = WaitKey If k = 51 Then Call 夺命射击() Call 狂野怒火() Call 倒刺射击() Call 杀戮命令() Call 眼镜蛇射击() Else End If ======================================================= Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer Dim 返回值, key key = 81 //Q的按键码=81 返回值 = GetAsyncKeyState(key) //返回值 = 0,Q键无操作。 //返回值 = 1,Q键按下一次。 //返回值 < 0,Q键处在按下状态。 if 返回值 <> 0 then //执行操作. end if
按键里面有什么命令,能检查某键此时是否处于按下状态? 按键里面有什么命令,能检查某键此时是否处于按下状态? 比如 我按下了Q键,然后10秒钟之后弹起,我如何知道是不是真的弹起成功了,有没有什么命令能检测当前是否有按键处于按下的状态 萌面大侠:各位大佬,我这边编写了一段代码,想要实现 按下键盘上的3 就执行,不按就停止。正常运行是没问题的。 但按住键盘上的另一个按键(比如A)的时候,这时再按3,脚本就执行不了了,为什么呀?求大佬帮帮我。。。 k = WaitKey If k = 51 Then Call 夺命射击() Call 狂野怒火() Call 倒刺射击() Call 杀戮命令() Call 眼镜蛇射击() Else End If ======================================================= Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer Dim 返回值, key key = 81 //Q的按键码=81 返回值 = GetAsyncKeyState(key) //返回值 = 0,Q键无操作。 //返回值 = 1,Q键按下一次。 //返回值 < 0,Q键处在按下状态。 if 返回值 <> 0 then //执行操作. end if
按键精灵。多线程例子 按键精灵。多线程例子 BeginThread A BeginThread B BeginThread C Sub A() Do TracePrint "a" Delay 100 Loop End Sub Sub B() Do TracePrint "b" Delay 100 Loop End Sub Sub C() Do TracePrint "c" Delay 100 Loop End Sub
按键精灵。多线程例子 按键精灵。多线程例子 BeginThread A BeginThread B BeginThread C Sub A() Do TracePrint "a" Delay 100 Loop End Sub Sub B() Do TracePrint "b" Delay 100 Loop End Sub Sub C() Do TracePrint "c" Delay 100 Loop End Sub
易语言能生成 COM接口dll?像dm.dll这种类型 易语言能生成 COM接口dll? 像dm.dll这种类型
按键精灵,tc简单开发,易语言,aardio 按键精灵,tc简单开发,易语言,aardio 中文编程的工具(PC端),目前就发现这四个
帮助新手,回复新人问题。大家有不懂的可以问. 帮助新手,回复新人问题。大家有不懂的可以问. 但太难的问题,可能回答不上。
按键精灵,办公自动化 怎样识字找字?现在的游戏 反外挂太厉害。 大漠插件的识字 找字,根本识别不出来. 只能做做 办公自动化了。
怎样做后台操作的脚本 关键词:DirectX普通后台窗口, 怎样做后台操作的脚本 关键词:DirectX 普通后台窗口,直接用TC的窗口模式。 游戏公司,使用DirectX软件 绘制的游戏窗口,ajjl/ tc 的窗口模式无效。 后台找图 找色 识字 找字,,按鼠标 按键盘,必须用大漠/天使/乐玩 的dx绑定模式。 DirectX全屏模式的绘图,一般是绕过系统的GDI,直接往屏幕上渲染,所以会更快更直接。 ======================================================= dx绑定模式,是把第三方dll注入目标进程空间。 tc不会做这种注入操作,第三方作者才敢编写这类注入dll。
【窗口类】怎样做后台操作的脚本 关键词:DirectX普通 【窗口类】怎样做后台操作的脚本 关键词:DirectX 普通后台窗口,直接用TC的窗口模式。
【窗口类】怎样做后台操作的脚本 关键词:DirectX普通 【窗口类】怎样做后台操作的脚本 关键词:DirectX 普通后台窗口,直接用TC的窗口模式。 游戏公司,使用DirectX软件 绘制的游戏窗口,ajjl/ tc 的窗口模式无效。 后台找图 找色 识字 找字,,按鼠标 按键盘,必须用大漠/天使/乐玩 的dx绑定模式。 DirectX全屏模式的绘图,一般是绕过系统的GDI,直接往屏幕上渲染,所以会更快更直接。 ======================================================= dx绑定模式,是把第三方dll注入目标进程空间。 tc不会做这种注入操作。第三方作者才敢编写这类注入dll。
【窗口类】怎样做后台操作的脚本 关键词:DirectX普通 【窗口类】怎样做后台操作的脚本 关键词:DirectX 普通后台窗口,直接用TC的窗口模式。 游戏公司,使用DirectX软件 绘制的游戏窗口,ajjl/ tc 的窗口模式无效。 后台找图 找色 识字 找字,,按鼠标 按键盘,必须用大漠/天使/乐玩 的dx绑定模式。 DirectX全屏模式的绘图,一般是绕过系统的GDI,直接往屏幕上渲染,所以会更快更直接。 ======================================================= dx绑定模式,是把第三方dll注入目标进程空间。 tc不会做这种注入操作。第三方作者才敢编写这类注入dll。
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. 原创作品。转载请标明作者,标明出处. 这只是一种操作方法。楼主到简单游 观摩脚本。发现其它脚本作者,还有更好的操作方法:标记每个像素点:能通行/ 不能通行,再通过像素点寻路。 大神们不要藏着掖着。欢迎大家分享出’更好的操作方法,共同学习,共同进步。减少重复造轮子的时间。
字节。网络字节序 4个字节的32 bit值,以下面的次序传 字节。网络字节序 4个字节的32 bit值,以下面的次序传输: 首先是0~7bit, 其次8~15bit, 然后16~23bit, 最后是24~31bit。 这种传输次序称作大端字节序。由于TCP/IP首部中所有的二进制整数,在网络中传输时都要求以这种次序,因此它又称作网络字节序。 字节序,顾名思义 字节的顺序,就是大于一个字节类型的数据,在内存中的存放顺序,一个字节的数据没有顺序的问题了。 所以:在将一个地址绑定到socket的时候,请先将主机字节序 转换成为网络字节序,而不要假定主机字节序跟网络字节序一样,使用的是Big-Endian。
三头豌豆。布局用的植物大战僵尸_泳池无尽版,在1-10关提供 三头豌豆。布局用的 植物大战僵尸_泳池无尽版,在1-10关提供进攻植物 多种向日葵之后,在2行、5行种三头豌豆。 布局用的。三头省地方,一个顶仨。 其它地方多种向日葵,种大喷菇 西瓜 玉米投手。 以25阳光作为代价,换来2个格子和相当于2个豌豆射手的冷却时间。 和土豆雷配合一下,早期两块地皮就可以保六路周全,比种六个豌豆经济多了 前期多种几个向日葵 还是很舒服的。三发还可以直接当终端用,种小豆还得换成双发。
三头豌豆。布局用的植物大战僵尸_泳池无尽版,在1-10关提供 三头豌豆。布局用的 植物大战僵尸_泳池无尽版,在1-10关提供进攻植物 多种向日葵之后,在2行、5行种三头豌豆。 布局用的。三头省地方,一个顶仨。 其它地方多种向日葵,种大喷菇 西瓜 玉米投手。 以25阳光作为代价,换来2个格子和相当于2个豌豆射手的冷却时间。 和土豆雷配合一下,早期两块地皮就可以保六路周全,比种六个豌豆经济多了 前期多种几个向日葵 还是很舒服的。三发还可以直接当终端用,种小豆还得换成双发。
【内存教程】在mov指令中,方括号的作用为什么步过这句指令后 【内存教程】在mov指令中,方括号的作用 为什么步过这句指令后,得到的结果不同
【内存教程】在mov指令中,方括号的作用为什么步过这句指令后 【内存教程】在mov指令中,方括号的作用 为什么步过这句指令后,得到的结果不同
内存教程。类数组的反编译2 tc中没有类,用结构体数组来理 内存教程。类数组的反编译2 tc中没有类,用结构体数组来理解。 正方形是一种特殊的矩形,结构体是一种特殊的类。 mov eax, [eax+edx*i] 这就是类数组的反编译,i 是数组下标。 eax是基址。 在mov指令中,[ ]是取值。 [eax]是数组的首地址, edx是每个数组元素,占几个字节。 比如edx=4,则占据4个字节。 数组的首地址 + 4*0,是数组元素0 的地址, 数组的首地址 + 4*1,是数组元素1 的地址, 数组的首地址 + 4*2,是数组元素2 的地址, 数组的首地址 + 4*3,是数组元素3 的地址, ………… ………… 使用for循环,变动下标i,就可以遍历每个数组元素。如此循环. •_.• :诛仙3地面物品基址+偏移, 偏移5,偏移7用for循环遍历: dd [[[[[[[[[1353CC4]+20]+8]+38]+50]+5*4]+38]+4*0]+0]+0
内存教程。类数组的反编译2 tc中没有类,用结构体数组来理 内存教程。类数组的反编译2 tc中没有类,用结构体数组来理解。 正方形是一种特殊的矩形,结构体是一种特殊的类。 mov eax, [eax+edx*i] 这就是类数组的反编译,i 是数组下标。 eax是基址。 在mov指令中,[ ]是取值。 [eax]是数组的首地址, edx是每个数组元素,占几个字节。 比如edx=4,则占据4个字节。 数组的首地址 + 4*0,是数组元素0 的地址, 数组的首地址 + 4*1,是数组元素1 的地址, 数组的首地址 + 4*2,是数组元素2 的地址, 数组的首地址 + 4*3,是数组元素3 的地址, ………… ………… 使用for循环,变动下标i,就可以遍历每个数组元素。如此循环. •_.• :诛仙3地面物品基址+偏移, 偏移5,偏移7用for循环遍历: dd [[[[[[[[[1353CC4]+20]+8]+38]+50]+5*4]+38]+4*0]+0]+0
内存教程。类数组的反编译。[esi+ecx*4+00000a 内存教程。类数组的反编译。 [esi+ecx*4+00000a78] 那他的偏移值是多少 厚德载物:这是个类数组。 esi是基址,[esi]是取基址的数值。 . ecx是每个数组成员,所占的字节数, 数组成员0,即ecx*0 数组成员1,即ecx*1 ………… ………… 数组成员4,即ecx*4 . 0a78是首个数组成员(即数组成员0),的偏移值,
内存教程。类数组的反编译。[esi+ecx*4+00000a 内存教程。类数组的反编译。 [esi+ecx*4+00000a78] 那他的偏移值是多少 厚德载物:这是个类数组。 esi是基址,[esi]是取基址的数值。 . ecx是每个数组成员,所占的字节数, 数组成员0,即ecx*0 数组成员1,即ecx*1 ………… ………… 数组成员4,即ecx*4 . 0a78是首个数组成员(即数组成员0),的偏移值,
时间类。测试代码的效率 F1_帮助文档。3.windows 时间类。测试代码的效率 F1_帮助文档。 3.windows平台,api详解,辅助 函数名:获取系统时间() 函数描述:获取系统从开机到现在,所经历的时间(单位: ms级) var hThread 功能 执行() var t1, t2 t1 = 获取系统时间() for(var i=0;i<10;i++) sleep(10) end t2 = 获取系统时间() 消息框(转字符型(t2 - t1)) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
时间类。测试代码的效率 F1_帮助文档。3.windows 时间类。测试代码的效率 F1_帮助文档。 3.windows平台,api详解,辅助 函数名:获取系统时间() 函数描述:获取系统从开机到现在,所经历的时间(单位: ms级) var hThread 功能 执行() var t1, t2 t1 = 获取系统时间() for(var i=0;i<10;i++) sleep(10) end t2 = 获取系统时间() 消息框(转字符型(t2 - t1)) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束
时间类。测试代码的效率 F1_帮助文档。3.windows 时间类。测试代码的效率 F1_帮助文档。 3.windows平台,api详解,辅助 函数名:获取系统时间() 函数描述:获取系统从开机到现在,所经历的时间(单位: ms级) var t1, t2 t1 = 获取系统时间() for(var i=0;i<10;i++) 等待(10) end t2 = 获取系统时间() 消息框(转字符型(t2 - t1))
OD。列出被加载的dll文件中提供的所有API 最近刚开始 OD。列出被加载的dll文件中提供的所有API 最近刚开始学习,在书中看到说使用OllyDbg中的Name in all modules命令可以列出被加载的dll文件中提供的所有API。使用Name in all modules命令打开All names。 可是我找了好久。。。都没找到Name in all modules这个菜单选项啊,求解答~谢谢~~ 传说中的连长: 在c界面(默认界面) 汇编框内 点右键查找-所有模块中的名称
OD。列出被加载的dll文件中提供的所有API 最近刚开始 OD。列出被加载的dll文件中提供的所有API 最近刚开始学习,在书中看到说使用OllyDbg中的Name in all modules命令可以列出被加载的dll文件中提供的所有API。使用Name in all modules命令打开All names。 可是我找了好久。。。都没找到Name in all modules这个菜单选项啊,求解答~谢谢~~ 传说中的连长: 在c界面(默认界面) 汇编框内 点右键查找-所有模块中的名称
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
下一页