TC官方合作论坛

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

[讨论] 关于完美世界就近打怪的一点想法。。。。

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 01:24:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 爱上老公 于 2015-4-10 01:37 编辑

完美世界属于典型的3D网游了,人物永远在地图中间,同时有个小地图左上角,游戏中按tab键选怪,选中怪物后,小地图上显示红点,
这就为就近打怪及其他功能的实现提供了基础,下面是小地图,蓝色线是怪物离人物X坐标距离(取绝对值),黑色线是怪物离人物Y坐标距离(取绝对值),
红色线就是人物和怪物的直线距离了,用勾股求出红色线的长度(数值),重复按tab选怪,就得到一个数组(且这么说吧!本人也是小白)下面就简单了,用到数组空间排列等,
找出里面的一个最小值,然后循环对比,直到取到这个最小值的怪,跳出循环,然后打怪。。。。判断怪物死亡(找图找色或者其他)。。。。再执行上面。。。。
说的不好,清见谅。。。
其实就是2个步骤
1.得到附近怪物离人物的直线距离,保存在数组空间
2.找出最小直线距离值,按选怪键再次匹配这个值。


功能 搜索怪物()
    dm.setpath(辅助.获取资源路径("rc:"))
    dm_ret1 = dm.SetDict(0,"数字1.txt")
    范围=类型.转整型(编辑框.获得文本("编辑框5"))
    变量 人物X坐标=1213
    变量 人物Y坐标=92
    变量 怪物X坐标
    变量 怪物Y坐标
    变量 距离X
    变量 距离Y
    辅助.等待(500)  //定义一个数组,把周围怪物于人物的直线距离放进数组
    变量 怪物集合=数组[4]
    遍历(i=0;i<4;i++)
        dm.KeyPress(9)
        辅助.等待(200)        //“怪物”其实就是小地图上的红点,选中怪物小地图上就有红点,
        dm_ret = dm.FindStr(1151,33,1273,158,"怪物","ff4f2c-000000",1.0,怪物X坐标,怪物Y坐标)
        //1213是人物在小地图上的X坐标,92是Y坐标,求出两条直角边的绝对值
        距离X=数学.绝对值(1213-怪物X坐标)
        距离Y=数学.绝对值(92-怪物Y坐标)
       //求出斜线长度(直线距离)
        怪物集合=类型.取整(数学.开方((距离X*距离X)+(距离Y*距离Y)))
    遍历结束

       //排序,小的放前面,也就是“怪物集合[0]”最小
    数组空间.排序(怪物集合,2)

    循环(真)
        辅助.等待(300)
        dm.KeyPress(9)
        辅助.等待(100)
       //“怪物”其实就是小地图上的红点,选中怪物小地图上就有红点,
        dm_ret = dm.FindStr(1151,33,1273,158,"怪物","ff4f2c-000000",1.0,怪物X坐标,怪物Y坐标)
        距离X=数学.绝对值(1213-怪物X坐标)
        距离Y=数学.绝对值(92-怪物Y坐标)
        s=类型.取整(数学.开方((距离X*距离X)+(距离Y*距离Y)))
        //调试输出(s)

      //保存后在循环对比,找到小于等于最小值就跳出
        如果(s<=怪物集合[0]+1)
            跳出
        如果结束
    循环结束




本帖子中包含更多资源

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

x
回复

使用道具 举报

沙发
 楼主| 发表于 2015-4-10 01:38:10 | 只看该作者
先顶自己一下
回复 支持 反对

使用道具 举报

板凳
发表于 2015-4-10 03:35:08 | 只看该作者
这样写的选怪效率有点低...
TAB 默认是选最近怪物吧 ?...
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2015-4-10 09:41:25 | 只看该作者
sam7894604 发表于 2015-4-10 03:35
这样写的选怪效率有点低...
TAB 默认是选最近怪物吧 ?...

不是的,随机的,要是默认最近的话,我也不会这么费神了,效率的话还过得去,在打怪线程执行前,怪就已经选好了,1到2秒
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-4-10 09:42:54 | 只看该作者
本帖最后由 爱上老公 于 2015-4-10 09:57 编辑
sam7894604 发表于 2015-4-10 03:35
这样写的选怪效率有点低...
TAB 默认是选最近怪物吧 ?...

求大神指导,还有一个问题,怎么样检测出附近(指定范围)怪物数量??比如说附近怪物超过一个,用到群怪技能。。。,一个怪物用单刷技能。。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-23 08:40 , Processed in 0.162600 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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