TC官方合作论坛

 找回密码
 立即注册
查看: 411|回复: 3
打印 上一主题 下一主题

[已解决] 扫描背包

[复制链接]
跳转到指定楼层
楼主
发表于 2015-6-3 15:03:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
功能 等待放入物品()
    变量 等待时间,jiaoyibeibaox,jiaoyibeibaoy,dma_ret,sdX,sdY,jyX,jyY,我的金币,背包总金钱
    等待时间=编辑框获取文本("等待时间","自动收货")
    如果(复选框获取状态("等待开启"))
        变量 当前的时间=当前时间(),开关=假
        循环(时间间隔("s",当前的时间,当前时间())<等待时间)
            dm.FindPic(0,47,200,403,"交易背包.bmp","000000",0.9,0,jiaoyibeibaox,jiaoyibeibaoy)
            如果(jiaoyibeibaox=="10")
                如果(jiaoyibeibaoy=="196")
                    扫描第一格()
                    计算价钱一()
                    扫描第二格()
                    计算价钱二()
                    扫描第三格()
                    计算价钱三()
                    扫描第四格()
                    计算价钱四()
                    扫描第五格()
                    计算价钱五()
                    扫描第六格()
                    计算价钱六()
                    扫描第七格()
                    计算价钱七()
                    扫描第八格()
                    计算价钱八()
                    扫描第九格()
                    计算价钱九()
                    全部合计=第一格总价+第二格总价+第三格总价+第四格总价+第五格总价+第六格总价+第七格总价+第八格总价+第九格总价
                    变量 交易前金币数 = dm.Ocr(363,392,479,415,"ffffff-151515",1.0)
                    调试输出("分割前我的交易前金币为:"&交易前金币数)
                    变量 找万=字符串查找(交易前金币数,"万")
                    如果(找万>-1)
                        变量 割
                        变量 结果 = 字符串分割(交易前金币数,"万",割)
                        遍历(变量 i = 0; i < 结果; i++)
                            调试输出(割[i])
                        结束
                        变量 头=割[0]
                        变量 尾=割[1]
                        交易前总数=(头*10000)+尾
                        调试输出("分割后我的交易前金币为:"&交易前总数)
                        如果(全部合计>交易前总数)
                            调试输出("余额不足,取消交易")
                            超时关闭一()
                        否则
                            调试输出("金额充足,可以交易")
                            等待(100)
                            dm.MoveTo(232,111-16)
                            等待(10)
                            dm.LeftClick()
                            等待(10)
                            dm.SendString(句柄0,全部合计)
                            调试输出(全部合计)
                            dm.FindPic(8,304,386,455,"锁定.bmp","000000",0.9,0,sdX,sdY)
                            如果(sdX>1)
                                dm.MoveTo(sdX+5,sdY+5)
                                dm.LeftClick()
                            结束
                            等待(800+随机数(200,500))
                            dm.FindPic(8,304,386,455,"交易.bmp","000000",0.9,0,jyX,jyY)
                            如果(jyX>1)
                                dm.MoveTo(jyX+5,jyY+5)
                                等待(100)
                                dm.LeftClick()
                            结束
                            等待确认时间=编辑框获取文本("等待确认")
                            等待(等待确认时间*1000)
                        结束
                    否则
                        调试输出("余额不足")
                        超时关闭一()
                        对话框("余额不足!!!!!!!!----目前所剩余额为→"&交易前金币数,"余额不足",0,真)
                    结束
                    跳出
                结束
                开关=真
                返回 真
            结束
            等待(100)
        结束
        如果(!开关)
            超时关闭一()
            返回 假
        结束
    结束
结束
//////////上面这段代码扫描后得到总金额是正确的,因为是按格扫描的,没有加入判断空的就不扫描,所以扫描速度太慢,我就给修改了,结果出问题了//////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
功能 等待放入物品()
    变量 等待时间,jiaoyibeibaox,jiaoyibeibaoy,dma_ret,sdX,sdY,jyX,jyY,我的金币,背包总金钱
    等待时间=编辑框获取文本("等待时间","自动收货")
    如果(复选框获取状态("等待开启"))
        变量 当前的时间=当前时间(),开关=假
        循环(时间间隔("s",当前的时间,当前时间())<等待时间)
            dm.FindPic(0,47,200,403,"交易背包.bmp","000000",0.9,0,jiaoyibeibaox,jiaoyibeibaoy)
            如果(jiaoyibeibaox=="10")
                如果(jiaoyibeibaoy=="196")
                  //我在这里加了一个判断第一格是否为空由于判断后得到的总价有问题,我就给删除了,现在用:比例语句来表示判断代码
                   如果(第一格为不等于空)
                    扫描第一格()
                    计算价钱一()
                    结束

                   如果(第二格不等于空)
                    扫描第二格()
                    计算价钱二()
                    结束

                   如果(第三格不等于空)
                    扫描第三格()
                    计算价钱三()
                    结束

                    如果(第四格不等于空)
                    扫描第四格()
                    计算价钱四()
                    结束

                    如果(第五格不等于空)
                    扫描第五格()
                    计算价钱五()
                    结束

                    如果(第六格不等于空)
                    扫描第六格()
                    计算价钱六()
                    结束

                    如果(第七格不等于空)
                    扫描第七格()
                    计算价钱七()
                    结束

                    如果(第八格不等于空)
                    扫描第八格()
                    计算价钱八()
                    结束

                    如果(第九格不等空)
                    扫描第九格()
                    计算价钱九()
                    结束
//////////////////////////////////////经过这样的修改后,空的格子不扫描了,有物品的也没有遗漏一格,得到数量单价,以及物品名,都是对的,,,,就是得到的总价却是会把上一次交易的总价也计算进去,,,,,,这时候我就凌乱的,,,,,,不知道该怎么改了
                    全部合计=第一格总价+第二格总价+第三格总价+第四格总价+第五格总价+第六格总价+第七格总价+第八格总价+第九格总价
                    变量 交易前金币数 = dm.Ocr(363,392,479,415,"ffffff-151515",1.0)
                    调试输出("分割前我的交易前金币为:"&交易前金币数)
                    变量 找万=字符串查找(交易前金币数,"万")
                    如果(找万>-1)
                        变量 割
                        变量 结果 = 字符串分割(交易前金币数,"万",割)
                        遍历(变量 i = 0; i < 结果; i++)
                            调试输出(割[i])
                        结束
                        变量 头=割[0]
                        变量 尾=割[1]
                        交易前总数=(头*10000)+尾
                        调试输出("分割后我的交易前金币为:"&交易前总数)
                        如果(全部合计>交易前总数)
                            调试输出("余额不足,取消交易")
                            超时关闭一()
                        否则
                            调试输出("金额充足,可以交易")
                            等待(100)
                            dm.MoveTo(232,111-16)
                            等待(10)
                            dm.LeftClick()
                            等待(10)
                            dm.SendString(句柄0,全部合计)
                            调试输出(全部合计)
                            dm.FindPic(8,304,386,455,"锁定.bmp","000000",0.9,0,sdX,sdY)
                            如果(sdX>1)
                                dm.MoveTo(sdX+5,sdY+5)
                                dm.LeftClick()
                            结束
                            等待(800+随机数(200,500))
                            dm.FindPic(8,304,386,455,"交易.bmp","000000",0.9,0,jyX,jyY)
                            如果(jyX>1)
                                dm.MoveTo(jyX+5,jyY+5)
                                等待(100)
                                dm.LeftClick()
                            结束
                            等待确认时间=编辑框获取文本("等待确认")
                            等待(等待确认时间*1000)
                        结束
                    否则
                        调试输出("余额不足")
                        超时关闭一()
                        对话框("余额不足!!!!!!!!----目前所剩余额为→"&交易前金币数,"余额不足",0,真)
                    结束
                    跳出
                结束
                开关=真
                返回 真
            结束
            等待(100)
        结束
        如果(!开关)
            超时关闭一()
            返回 假
        结束
    结束
结束



//////////////////////////////还望各位大神帮帮忙,为什么我只加了判断是否为空的代码后,得到的总价却会连上次交易的都累加起来了,,,,··················而我没有加判断为空的代码,得到的总价却不会出现这种累加的错误的!!!!!!!!!我每次交易出啊公开关闭后,都会重启交易线程的,,,,,,,,,,
回复

使用道具 举报

地板
发表于 2015-6-4 08:03:15 | 只看该作者
价格变量初始化的时候赋值一下
回复 支持 反对

使用道具 举报

沙发
发表于 2015-6-3 15:53:27 | 只看该作者
代码太长,实在是没有耐心看啊。。。让楼下的来
回复 支持 反对

使用道具 举报

板凳
发表于 2015-6-3 20:46:22 | 只看该作者
你是不是两个函数都调用了?如果是的话那就相当于把两次都累加了,或者你每次调用前把总价格置零试试。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-22 20:27 , Processed in 0.209495 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表