首页
社区
课程
招聘
[讨论]关于游戏外挂线程控制乱谈!
发表于: 2009-4-3 12:28 6891

[讨论]关于游戏外挂线程控制乱谈!

2009-4-3 12:28
6891
游戏外挂已经成为不少程序初学者的初始动力和源泉。此帖就是一个新手关于游戏外挂的线程控制的乱谈,大家看看笑笑就罢了。

外挂是实现计算机代替游戏者自动运行游戏的一个程序。
电脑是笨蛋,只有交给他一步一步做他才能帮你玩游戏。

要明白外挂怎么工作,先要明白你是怎么玩游戏的吧。

首先我们要随时盯着游戏信息,例如人物的坐标、生命、法力、技能、包裹、怪物信息等。我想这步恐怕是游戏进行中需要一直注意的,一般用些timer来控制。
根据一定的条件,我们进行寻怪、打怪,拾取、恢复、回程、买卖等操作。这些应该可以通过线程来控制。

举例说明:
一般来说,
首先确定城市坐标,挂机地点坐标,人物坐标来判断是否采取线程实现自动寻路功能。
到达挂机坐标时,首先需要判断自身生命安全来判断是否采用线程实现自动恢复功能。
如果自身安全,确定怪物信息,来判断是否采用线程实现自动寻怪、打怪功能。
打怪肯定要有收获,确定周围物品信息,来判断是否采取线程实现自动拾取功能。
整个过程一般采取循环判断,来进行各个线程功能的操作。

基本也就是
采取一个全盘的timer来监控游戏信息。
使用一些判断来进行游戏操作。
做了一个简单的图,也不知道正确不?

但是在挂机的逻辑上,一定需要仔细揣摩。

有几个小疑问希望高手能解惑:
1、必须采用循环来控制打怪流程么?
2、使用线程控制部分功能时又该使用什么逻辑来操作呢?

唉,乱七八糟的,大家一起讨论一下吧。

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 425
活跃值: (205)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
受宠若惊
2009-4-3 12:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
恩恩,通俗易懂~~~
2009-4-4 00:38
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
单线程足够了,用多线程有害无益,功能一多同步起来极度繁琐

看楼主的帖子,似乎都没有一个状态机的概念,要搞外挂也得先打好基础的,否则自己玩玩还可以,要是发布商业挂的话肯定被人踩死
2009-4-4 08:39
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
5
楼主的逻辑比我的还乱 oye
用脚本控制
2009-4-5 06:36
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
6
一般都需要支持脚本
2009-4-5 10:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我喜欢这类的帖子嘿嘿!
2009-4-6 00:37
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
用不用脚本不是关键吧,就算用脚本最终调用的还是C/C++的功能函数
问题是怎么控制外挂的流程

不管脚本还是C,最终都得有个游戏循环来实现大部分的保护/挂机功能,在这个过程中,人物状态肯定得搞的清楚才能把外挂做稳定,针对某些特殊事件,可以注册回调函数来做响应

可以去分析某些游戏的脚本引擎,看他们是怎么做的,对搞外挂也很有帮助。
2009-4-6 11:12
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有个疑问,支持脚本(如lua)是否需要将硬编码函数做成阻塞形式?
因为脚本是不管那么多的,不阻塞的话,结果就是还没完成这一步,就去下一步了。比如脚本调用c++编写的”移动”指令,c++里应该直到判断角色到达目的地才返回?

之前一直用的状态机,timer里定时刷新一侦
2009-4-15 05:27
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
发重了--编辑掉,跪求解答啊,这个问题困扰我好久了,状态机说老实话有点麻烦,比如每幀都要判断一次当前状态是否完成。而阻塞式不用,完成一步才进行下一步,更符合人脑阅读顺序,只是估计就要起一个新线程了,这就是我觉得解析脚本不爽的地方。

把状态机写脚本里倒是个好办法,不过估计这个脚本系统也废了,没几个用户会自己改写。还不如全c++了,除了调试麻烦点,每次修改都要重新编译、开游戏、注入,出错又继续………
2009-4-15 05:31
0
游客
登录 | 注册 方可回帖
返回
//