TC官方合作论坛

标题: 感慨贴。。举步维艰 [打印本页]

作者: xenolss    时间: 2012-5-17 20:42
标题: 感慨贴。。举步维艰
  我不是来混分的 学了有2个星期了
  确实有很大的感慨..基础语法基本都熟练了 遍历,传参,数组,循环都可以很快写了
大漠也都会用了 .这3天把线程也了解了 临界区保护的其实是当前线程访问的对象资源 这个我郁闷了很久

然后。。。。我发现自己对某游戏定义的3开前台切换操作  其实是个很恐怖的工程..
  从开启登陆取得对应窗口对应账号库 的第一个未完成任务的账号开始....
  各种对应账号库对应窗口对应线程句柄的互相传递,各种全局变量的保存..对应线程的开启和暂停 ,关闭,监视线程对各个窗口的操作,对其他任务线程的操作..
  各种异常状态之后 对目前窗口目前线程目前执行的任务位置的保存判定..以及3开某窗口获得一个空闲状态之后转换到另一个窗口另一个线程的执行 其他线程的暂停
   以及正常完成登出账号的参数保存  异常退出 到登陆界面的窗口处理 参数保存  异常退出到桌面的处理 参数保存。。。
  表示自己已经快疯了..

做过这种复杂情况项目的大神   能不能给点建议  如何让这个工程 看起来简单而清晰化..
我基本把整个写成了文档  但是看起来就很复杂 头疼
还不说就算做出来了处理bug 调试的各种环节
我是不是考虑的太多了 还是思路太复杂 要重新考虑?

作者: cylhb    时间: 2012-5-17 20:44
-.-确实,思路要清晰,写起来才不会乱
表示思路也是一团糟.
作者: xenolss    时间: 2012-5-17 21:00
     其实是我没有表达好
   开始的时候  思路是很清晰的
   越写越乱 。 就比如这样一个情况
开始主程序执行了4个线程    第1个用来监视,判断对应线程句柄 以及处理目前窗口的游戏内异常,死亡等等
                              2,3,4,分别用来3开开启游戏登陆不同的区和不同的账号库
这些都实现了
                           但是我写到这个情况的时候  我发现了问题  如果窗口1对应的线程1  窗口崩溃了..线程1 我用监视线程来关闭处理
然后重新打开的时候 重新给全局变量线程1赋句柄   从第一步开始执行.ok 没问题
                           但是如果是窗口1 异常掉出到登陆账号的界面了呢?我重新执行线程1.。。是从打开客户端开始的
                           所以我就必须在打开客户端之前加个标记全局变量 执行到这里了
                           然后登陆取得窗口之后再打个标记  表示执行到这里了
                           我已经不敢想象全程要打多少个标记. 还不算死亡重新执行 要打别的标记。。各种判断
作者: xenolss    时间: 2012-5-17 21:05
   这个时候 我在想 如果有跳转 该有多好啊。。。。。。。。
作者: xenolss    时间: 2012-5-17 21:23
而且我也终于明白为什么这款游戏200 左右一个月的  几款按键类的挂
没有一个写自动启动游戏 和 掉线处理了
开始我还认为写个自动登陆没啥
现在才知道  其实难的不是写功能  是那些异常情况的处理 。。哎
作者: 泥巴路    时间: 2012-5-17 22:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: ksap787523    时间: 2012-5-18 08:35
其实代码写起来无非就是判断判断在判断,大不了多加几个如果,while,但是衔接起来中间不出问题,就是所谓的调试,那才是最痛苦的,说说我的感受吧,做的自动拉镖跟自动升级,代码其实就几天写完了,调试时间差不多是写代码的好几倍,可能跟基础什么的也有关系,毕竟以前不是专业写这东西,第一次,难免的,自己一直跟自己说以后会好的,现在调试什么的基本都正常能用了,所以说,辅助不是考验代码,考验的还是楼主说的:思路加油
作者: tyuyan    时间: 2012-5-18 09:15
来看看。  支持一下。。
作者: 战斗之神    时间: 2012-5-18 09:43
这么多热心的坛友, 我相信,我们学习中遇到的问题都不是问题。
作者: 花开花落    时间: 2012-5-18 10:08
     可以去看下啊三姐的三开天龙八部那个.
作者: 无情的冷风    时间: 2012-5-18 10:27
我要盗用三姐的话,冰冻三尺非一日之寒,学习贵在坚持。支持TC,向上吧!
作者: 战斗之神    时间: 2012-5-18 10:45
来学习下。
作者: ltsi001    时间: 2012-5-18 11:53
菜鸟请教下楼主写出的文档是怎么写的,我写脚本思路很不清晰,想哪是哪,基本一片混乱。听说高手为思路清晰都有流程图或文档,但我不知道怎么写?能否举例或发个样本看看。还有打标记是怎么打的?
作者: xenolss    时间: 2012-5-19 02:12
    感谢各位的鼓励......经过15个小时的处理..终于能很好的控制上面的问题了   就是代码自己看着都晕。。。
3开前台我是这么处理的  不知道以后这样有没有问题
3个线程控制3窗口   某窗口如果读到比如有自动寻路 自动打怪 以及特定的不需要操作的情况。给全局变量的线程句柄的下一个线程消息 -该你了 然后暂停目前窗口线程,切换到下一个线程的窗口 开启下一个线程操作  直到读取到不需要操作的情况 。继续循环传递
  然后检测做了一个死循环  凡是符合检测内的情况才操作  操作之前读取目前窗口的句柄  判断是哪个线程在控制 暂停该线程  让检测线程操作,结束了继续该线程来控制!目前试了1个功能基本无错!
  剩下就是游戏里录功能 继续检测bug了 嘿嘿  再次感谢各位!
作者: xenolss    时间: 2012-5-19 02:13
回复 13楼ltsi001的帖子

我是画的图  自己随便弄的。。不是很正规  这样的话  你看着图来设计感觉会好一点




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1