很高兴又和大家见面了,我是昊歌,也许这个是DNF最后一个脚本,以后我可能就不再有时间给大家做DNF的脚本了,也很少接触到C这款开发工具了。在此很感谢TC的:match、斌哥、栋哥、陈哥、大王子、小王子,让我在TC中学到了很多,也带来了很多的快乐。永远支持TC!!!
项目分享(点击下载):
下面我分享下关于DNF拍卖的思路:
- 主空间:
- #import "dm.dmsoft" DM
- #include"扫拍卖.t"
- 空间 终极版秒拍卖
- //定义默认空间
- 整型 线程句柄
- 功能 逻辑型 开始_点击()
- 线程句柄 = 线程.开启("扫拍卖.Start")
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄)
- 辅助.退出()
- 返回 真
- 功能结束
- 功能 逻辑型 销毁()
- 线程.关闭(线程句柄)
- 返回 真
- 功能结束
- 功能 逻辑型 价格_点击()
- 辅助.命令("rc:价格设置表格.txt",true)
- 返回 真
- 功能结束
- 空间结束
- //空间结束语句
复制代码- 子空间:
- 空间 扫拍卖
- 字符型[] 名称
- 字符型[] 短语
- 字符型[] 价格
- 功能 字符型 读取物品价格()
- 字符型 物品标示1,物品名称1,价格1,物品标示2,物品名称2,价格2,物品名称3
- 整型 位置1,位置2,位置3,位置4,位置5
- 整型 a=1,b=1,c=1
- 名称 = 字符型[100]
- 短语 = 字符型[100]
- 价格 = 字符型[100]
- 整型 文件句柄 = 文件.打开("rc:价格设置表格.txt")
- 如果(文件句柄!=0)
- 循环(真)
- //得到物品名称,如:灵魂晶石
- 字符型 内容=文件.读一行(文件句柄)
- 如果(字符串.长度(内容)<=0)
- 跳出
- 否则
- 位置1 = 字符串.查找字符(内容,124)
- 物品标示1 = 字符串.移除(内容,字符串.长度(内容)-位置1,假)
- 价格1 = 字符串.移除(内容,位置1+1,真)
- 位置2 = 字符串.查找字符串(内容,":")
- 物品名称1 = 字符串.移除(物品标示1,位置2+1,真)
- 名称[a] = 物品名称1
- //得到搜狗短语,如:ab
- 位置3 = 字符串.查找字符(价格1,124)
- 物品标示2 = 字符串.移除(价格1,字符串.长度(价格1)-位置3,假)
- 价格2 = 字符串.移除(价格1,位置3+1,真)
- 位置4 = 字符串.查找字符串(价格1,":")
- 物品名称2 = 字符串.移除(物品标示2,位置4+1,真)
- 短语[b] = 物品名称2
- //得到该物品价格,如:2000
- 位置5 = 字符串.查找字符串(价格2,":")
- 物品名称3 = 字符串.移除(价格2,位置5+1,真)
- 价格[c] = 物品名称3
- 如果结束
- a = a + 1
- b = b + 1
- c = c + 1
- 循环结束
- 文件.关闭(文件句柄)
- 否则
- 辅助.对话框("请检查价格表是否填写准确!","温馨提示",0,true)
- 返回 " "
- 如果结束
- 返回 " "
- 功能结束
- 功能 整型 获取键码值(字符型 字母)
- 整型 次数,结果 = 65
- 字符型 全部字母 = "abcdefghijklmnopqrstuvwxyz"
- 整型 位置 = 字符串.查找字符串(全部字母,字母)
- 循环(次数<位置)
- 结果 = 结果 + 1
- 次数 = 次数 + 1
- 循环结束
- 返回 结果
- 功能结束
- 功能 逻辑型 快速扫描()
- 整型 短语个数,个数,次数,截取数量,a=1,b=1,c=1,d=1
- 字符型 总短语,字母
- 整型[] 按键码 = 整型[1000]
- 扫拍卖.读取物品价格()
- //鼠标移动点击一次,输入短语
- 鼠标.移动(168,130)
- 辅助.等待(100)
- 鼠标.左键单击(1)
- 辅助.等待(100)
- 标签.设置文本("标签0",字符串.连接("正在搜索:",名称[a]))
- 短语个数 = 字符串.长度(短语[b])
- 总短语 = 短语[b]
- 个数 = 短语个数
- 短语个数 = 短语个数 - 1
- 循环(截取数量<个数)
- 字母 = 字符串.截取(总短语,0,短语个数)
- 按键码[d] = 扫拍卖.获取键码值(字母)
- 总短语 = 字符串.移除(总短语,1,真)
- d = d + 1
- 短语个数 = 短语个数 - 1
- 截取数量 = 截取数量 + 1
- 循环结束
- d = 1
- 循环(真)
- 如果(按键码[d]==0)
- 跳出
- 如果结束
- 键盘.按键(按键码[d],1)
- 辅助.等待(50)
- d = d + 1
- 循环结束
- 鼠标.移动(508,51)//点击搜索
- 辅助.等待(50)
- 鼠标.左键单击(1)
- 辅助.等待(50)
- 鼠标.移动(561,124)//移动显示价格框,判断是否是一口价,以及价格判断。
- 辅助.等待(50)
- //下面的代码我相信很简单,只要对比价格即可,如果是自己需要的秒下来,如果不是就添加一个是否需要扫下一页,不需要则换下一个物品。
- //循环的话,你只需a,b,c都减少一次就是读取到记事本下一行了,也就是下一个物品,至于下面进行购买步骤我就不写了,大家可以拿去参考,
- //代码写完大概200行不到。
- 返回 真
- 功能结束
- 功能 逻辑型 Start()
- 整型 窗口句柄=窗口.找到窗口("地下城与勇士")
- 如果(窗口句柄 == 0)
- 辅助.对话框("请检查游戏是否开启!","温馨提示",0,true)
- 返回 真
- 否则
- DM.SetPath(辅助.获取资源路径("rc:"))
- DM.SetDict(0,"秒拍卖.txt")
- 窗口.设置位置(窗口句柄,0,0)
- 窗口.激活(窗口句柄)
- help.sleep(1000)
- 扫拍卖.快速扫描()
- 如果结束
- 返回 真
- 功能结束
- 空间结束
复制代码
|