TC官方合作论坛

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

[问题] 【TC自动任务编程思路】【大漠后台】【请大神指导!!!!】听说标题长会引诱大神...............

[复制链接]
跳转到指定楼层
楼主
发表于 2012-2-25 11:52:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
前言:
本菜鸟这几天在学TC(老婆玩的功夫世界游戏屏蔽按键,又强迫本菜鸟要帮她自动实现某些功能),因为没有C++等语言编程基础,以前只会一些按键精灵的简单脚本,所以在学习TC的时候,对于语法结构、流程控制、语句顺序等还是比较迷茫的。
因为本菜鸟以前编写按键的时候使用过大漠插件,喜欢编后台脚本,再加上TC2.1是最新版,所以上手就使用TC2.1,一步到位吧。这就注定了我用的插件和TC都是最新版的,不过这也为后面的学习增加了较大难度。

因为TC2.1不封装大漠,而论坛基本都是封装大漠版TC的源码,学习起来感觉较为困难。

经过数天论坛爬贴,自行测试,有些心得体会,想在这里抛砖引玉,也求大神指导,菜鸟在这里先谢谢了~~

-------------------------------------------前言结束-----------------------------------------------------------------------------
我编写的脚本,基本上属于自动任务类别的,想要实现如下功能:
1.自动接任务
2.接取任务后自动前往任务地点
3.判断是否到达任务地点(中间可能过地图)
4.到达任务地点开始自动打怪、加血蓝
5.判断任务是否完成
6.交任务
7.循环到第一步,重新接任务

不得不提的是,实现上述任务,很多地方都需要一个关键判断,就是人物是在行走还是静止,用以判断任务是否到达指定地点。如前往任务地点,人物静止了才开始自动打怪。又如任务完成了去交任务,人物静止了就认为到达了交任务NPC旁边,等........。这一步在按键里面可以用子程序SUB控制,主程序需要判断时,调用子程序,子程序判断人物静止后返回主程序执行下一步。在TC中,是不是建立一个函数(函数类似于子程序),函数中用循环语句判断,然后在线程中调用该函数??

实现上述功能,我的以下思路是否可行??


程序入口,也就是主程序,此主程序中不能使用循环语句(会导致程序失去响应),循环语句只能放入线程中(是不是循环语句也不能放入函数中在主程序中被调用?)
不过为了思路清晰,又为了实现必不可少的循环语句,程序入口我只加入线程
---------------------入口部分-----------------------------------------------------------------
功能 逻辑型 开始_点击()  
整型 开始
开始=线程.开启("空间名.自动任务")
返回 真  
功能结束  
---------------------入口部分结束-----------------------------------------------------------------

经过上述代码,程序调入线程“自动任务”,其实就是把函数“自动任务”,作为一个单线程执行,不知道我这样理解对吗?然后我把所有需要实现的上面写的7个功能,全部写入“自动任务”或由“自动任务”调用 ,那么是否可以理解为,“自动任务” 才是真正的脚本主线程?!

-----------------------------------主程序部分-------------------------------------------
功能 整型 自动任务()
//注册插件、绑定游戏窗口、设置路径、字库文件、图片等
...............上述功能语句略,想问的问题是在线程中用大漠绑定窗口后,是全局的吗?在调用其它函数时,其它函数内容中是否需要重新绑定窗口??


//下面的程序,需要实现的功能均可以设置函数在这里调用
自动任务.接任务 ()
自动任务.  前往任务地点 ()
自动任务.  是否到达 ()
.............
功能结束

-----------------------------------主程序部分结束-------------------------------------------

上述思路,不知是否正确,或者有更好的思路,还请大神们看在我写了这么多的份上,不要保留了,谢谢~~~~

问题:
1.循环语句能否放入函数中在主程序(功能 逻辑型 开始_点击() )中被调用 ?
2.线程中用大漠绑定窗口后,是全局的吗?在线程中调用其它函数时,其它函数内容中是否需要重新绑定窗口??
3.主程序中(功能 逻辑型 开始_点击())用大漠绑定窗口后,在线程中还需要重新绑定吗??

最后,真希望能有多些TC2.1版的稍微复杂写的脚本源码出现,看规范的源码对理清思路帮助很大~~~~
回复

使用道具 举报

沙发
 楼主| 发表于 2012-2-25 11:55:58 | 只看该作者
发错区了,麻烦版主帮我移到新手区或者综合区,谢谢~~~~~~~~~~
回复 支持 反对

使用道具 举报

板凳
发表于 2012-2-25 13:18:29 | 只看该作者
1:while放在线程里
function int 自动任务()
while (true)
自动任务.接任务()
自动任务.xxxxxx()
自动任务.bbbbbb()
自动任务.vvvvvvv()
//以下省略10万行:+
endwhile
return 0
endfunction
2:绑定得在线程内绑定,同样解绑得在线程内解.常看到有人写在开始键里什么获取句柄了,绑定了,然后开个线程.此举对错不置评论,至少我自己从不那样写.既然在线程内,就不是全局的了,仅针对当前线程
3:参考第二点回答
回复 支持 反对

使用道具 举报

地板
发表于 2012-2-25 14:03:59 | 只看该作者
:strong:,思路还比较清晰,在做的过程中把莫些单独的功能仔细测试好,OK,你应该可以很好的完成,自然大神的意见很好
然后加油,勤奋什么的,以下省略1万字.....
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-2-25 16:36:27 | 只看该作者
哇,钓到大鱼了..........大神和管理员都出现了~


谢谢“超自然”

“绑定得在线程内绑定,同样解绑得在线程内解.常看到有人写在开始键里什么获取句柄了,绑定了,然后开个线程.此举对错不置评论,至少我自己从不那样写.既然在线程内,就不是全局的了,仅针对当前线程”这句话受益匪浅,我也是你说的常看到的那部分人........我说TC怎么老出错,一出错关掉的时候连游戏也自动关掉了.............

谢谢“match”,这几天晚上写程序到2-3点,上班连续迟到好几天了:P。
回复 支持 反对

使用道具 举报

6#
发表于 2012-2-25 16:51:52 | 只看该作者
:-o来看看
回复 支持 反对

使用道具 举报

7#
发表于 2012-2-26 20:38:57 | 只看该作者
这游戏一Y游戏币等于40元rmb。。。。。
回复 支持 反对

使用道具 举报

8#
发表于 2012-2-26 20:44:55 | 只看该作者
大神和管理员都出现了
回复 支持 反对

使用道具 举报

9#
发表于 2012-4-16 20:25:10 | 只看该作者
神们写滴真好.学习了.
回复 支持 反对

使用道具 举报

10#
发表于 2012-4-16 22:09:54 | 只看该作者
有点看不懂  但是想学习脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-18 22:08 , Processed in 0.257293 second(s), 24 queries .

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

© 2001-2013 Comsenz Inc.

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