TC官方合作论坛
标题:
各种导致脚本崩溃的原因
[打印本页]
作者:
a5754556
时间:
2013-1-31 22:36
标题:
各种导致脚本崩溃的原因
历经千辛万苦,终于,终于脚本写出来了。可是,可是!脚本运行一段时间就会报错!!!!!老天,你折磨死我算了!
脚本运行一段时间会崩溃提示内存不能为读.求解释
我就不贴代码了,因为不知道问题在哪,估计贴上来也没人看,700多行的代码我自己看着都难过。。。
窗口绑定多次后会不会导致脚本崩溃呢?是前台模式绑定。两个线程。
求大神分享经验 ,各种脚本崩溃的原因贴上来 小弟感激不尽。
另外问个问题,TC学多了会不会对人有什么影响? 这两天和朋友说话间听到他说如果什么什么的,我就忍不住想告诉他他的话还缺个如果结束呢。。。
作者:
幼园留级老油条
时间:
2013-1-31 22:37
贴源码
作者:
a5754556
时间:
2013-1-31 22:42
源码奉上 主要的两个线程
功能 打怪() //通过传参获得选项后 执行打怪
dm=com("dm.dmsoft")
窗口句柄=窗口.鼠标所在窗口句柄()
如果(窗口句柄==0)
辅助.消息框("获得窗口句柄失败,请将鼠标移至游戏窗口!","提示")
否则
是否绑定成功=dm.BindWindow(窗口句柄,"normal","normal","normal",0)
如果(是否绑定成功==0)
辅助.消息框("窗口绑定失败,请联系客服!","提示")
如果结束
如果结束
辅助.等待(1000)
//****************************************************************************************************************
var x,y,X,Y,x1,y1,x2,y2,x3,y3,c,d
循环(真)
sm=dm.FindColor(72,25,81,38,"900909",0.9,0,X,Y)
如果(X!=-1)
a=复选框.获得状态("复选框0")//是否过滤打怪
找怪=编辑框.获得文本("编辑框0")
选择(a)
条件 真://过滤打过
gm= dm.Ocr(413,12,521,26,"ffffff-000000",1.0)
如果(gm==找怪)
打怪技能.开始()
辅助.等待(500)
否则
dm.KeyPress(9)
辅助.等待(200)
如果结束
s1=dm.FindPic(409,8,523,29,"E:\\幽魂打怪\\幽魂打怪\\资源\\死亡.bmp","000000",0.9,0,x1,y1)
如果(x1!=-1)//怪物死亡
日志.日志()
辅助.等待(100)
for(6)
捡物.捡物品()
辅助.等待(100)
endfor
dm.KeyPress(9)
辅助.等待(200)
如果结束
//**************************************************************************************
条件 假://无差别打怪
tz=dm.FindPic(403,5,426,27,"E:\\幽魂打怪\\幽魂打怪\\资源\\怪特征.bmp","090909",0.9,0,x2,y2)//找特征点
如果(tz!=-1)
打怪技能.开始()
辅助.等待(500)
否则
dm.KeyPress(9)
辅助.等待(200)
如果结束
s=dm.FindPic(409,8,523,29,"E:\\幽魂打怪\\幽魂打怪\\资源\\死亡.bmp","000000",0.9,0,x3,y3)
如果(x3!=-1)//怪物死亡
日志.日志()
辅助.等待(100)
for(6)
捡物.捡物品()
辅助.等待(100)
endfor
dm.KeyPress(9)
辅助.等待(200)
如果结束
选择结束
否则
辅助.等待(2000)
复活方法.选择复活方式()//人物死亡 复活
如果结束
循环结束
功能结束
功能 加血()
dm=com("dm.dmsoft")
窗口句柄=窗口.鼠标所在窗口句柄()
如果(窗口句柄==0)
辅助.消息框("获得窗口句柄失败,请将鼠标移至游戏窗口!","提示")
否则
是否绑定成功=dm.BindWindow(窗口句柄,"normal","normal","normal",0)
如果(是否绑定成功==0)
辅助.消息框("窗口绑定失败,请联系客服!","提示")
如果结束
如果结束
辅助.等待(1000)
循环(真)
var x,y,x1,y1
a7=下拉框.得到选项("下拉框6")
如果(a7>=100)
辅助.消息框("请设置1~99的整数值")
如果结束
内容=类型.转整型(编辑框.获得文本("编辑框8"))
起点=73
终点=184
长度=终点-起点
加血X坐标=起点+长度*内容/100
加血X坐标1=类型.转整型(加血X坐标)
是否找到=dm.FindColor(加血X坐标1,28,184,37,"900909-000000",0.8,0,x,y)
如果(x==-1)
dm.KeyPressChar(下拉框.获得内容("下拉框6",a7))
如果结束
a8=下拉框.得到选项("下拉框8")
如果(a7>=100)
辅助.消息框("请设置1~99的整数值")
如果结束
内容=类型.转整型(编辑框.获得文本("编辑框9"))
起点=74
终点=183
长度=终点-起点
加蓝X坐标=起点+长度*内容/100
加蓝X坐标1=类型.转整型(加蓝X坐标)
是否找到1=dm.FindColor(加蓝X坐标1,40,184,50,"093b95-000000",0.8,0,x1,y1)
如果(!是否找到1)
dm.KeyPressChar(下拉框.获得内容("下拉框8",a8))
如果结束
循环结束
功能结束
作者:
超自然
时间:
2013-2-1 01:10
粗看这两段不至于崩,不过很多错误,比如鼠标取句柄不可能=0的,除非你电脑关了,第二各种错误提示之后其实没啥实际意义,后面的代码还是照着走下去,该错的还得错,该爆的还得爆
作者:
zxyc2000
时间:
2013-2-1 09:37
原因有可能是窗口多次绑定大漠。
lz可以试一下把加血的线程关了,手动加血一段时间。
作者:
qisi2012
时间:
2013-2-1 14:25
你太幽默了 还如果结束 哈哈哈
作者:
a5754556
时间:
2013-2-1 14:52
把加血功能取消后还是崩溃 估计不是多次绑定的原因。创建大漠对象过多会不会是原因之一呢?崩溃ING
作者:
a5754556
时间:
2013-2-1 15:03
也不是大漠的问题 ,大漠对象改成全局值后还是崩溃,只不过崩溃的时间大大延长了
作者:
a5754556
时间:
2013-2-1 15:10
问题应该是打怪.开始()那 因为打怪开始 打开了6个以上的线程 而打怪开始()在循环里 。加个打怪.结束()试试去
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1