植物大战僵尸吧 关注:566,203贴子:5,117,612

【分享】【原创】植物大战僵尸手动键控通用脚本

只看楼主收藏回复

一娄喂度娘惯例


IP属地:广东1楼2011-04-17 09:49回复
    2楼感谢pvz贴吧
    让我学到了这个游戏的很多很多
    本人对阵型没有什么创意, 自己摆的阵都是洗具
    想想我能为帖吧做点什么, 大概就想设计这么个大家通用的按键精灵脚本吧
    不仅方便畏惧程序的新手, 即使对会编程写脚本的玩家, 相信也能节省变阵重写代码的劳动


    IP属地:广东3楼2011-04-17 09:54
    回复
      2025-08-31 19:53:39
      广告
      不感兴趣
      开通SVIP免广告
      汗, 已经**了
      脚本下载地址
      http://d.namipan.com/d/0b3651188609634a397ad5a388d80d10ad6dc10118420000


      IP属地:广东4楼2011-04-17 09:55
      回复
        汗....原来是我开启方法错误了.......非常不错,LZ有心了,先飘红了~
        不过有几个小问题,希望能改一下
        1.像我刚才没用热键而是用鼠标启动脚本,结果获取了按键精灵的窗口运行脚本之后可以先延时几秒,
        2.默认按键‘X’的炮位有问题,脚本里有错误...
        这是脚本代码的...下面那个‘X’应该改成‘V’吧- -
        3.落点在炮上面时会出现落点位置的炮一同发射的情况...例如在这个阵按‘A’就会有这个结果....

        这是为了防止点到阳光或者金币等等吧,我觉得可以这样处理:点炮点多次,点落点只需要一次,因为鼠标有红圈的时候点击只会发炮而不会捡东西...
        


        13楼2011-04-20 15:22
        回复
          回复9楼:
          那个"槽位"是我命名的一个变量名而已, 就是表示那十个卡槽的位置的数组
          由于按键支持中文变量名, 所以这个脚本我统一用中文变量名, 为了易读


          IP属地:广东23楼2011-04-21 11:46
          回复
            回复:13楼
            这几个问题收到, 会想办法改进
            1. 关于热键或鼠标启动脚本的问题
            我知道另有一个 Plugin.Window.Find() 方法可能更好的解决
            只是我现在机器上只装有 "植物大战僵尸中文版"
            请问下英文版的准确的窗口标题是什么……
            还有其他版本么,因为要尽可能通用
            2. 纯粹是码字错误啦,拷贝上行忘了更改
            目前LZ还在打火焰十二炮,自己也忘了测试超多炮的情况
            3.多重点击这个问题是比较头痛的,很多细节问题,顾此失彼
            现在我设计的数据结构是,对绝大多数快捷键使用基本统一的“坐标数组”,响应快捷键时就是对该数组的每个坐标点一次,外面再套个多重点击的循环……
            如果要区别炮点落点,可能就要重新设计数组结构了。
            让我再考虑下
            另外, LZ 这几天也一直要修改脚本程序
            预告下,已经增加了自动寻炮(一键打炮)的功能与备份的功能
            完善之后再上传新版本


            IP属地:广东25楼2011-04-21 12:04
            回复
              自动寻炮美啊……第一次用找炮的是挂机帝,用的是找色,之后小倩搞了个内存找炮,更美啊~不知道楼主什么方法……


              IP属地:广东来自掌上百度28楼2011-04-21 14:46
              回复
                回复25楼:
                另外,多重点击那个问题,你是将录入序列循环点击N次吧……那么就可以在循环的最后猛击右键(鼠标移到空地,不要在卡槽上)


                IP属地:广东来自掌上百度29楼2011-04-21 14:50
                回复
                  2025-08-31 19:47:39
                  广告
                  不感兴趣
                  开通SVIP免广告
                  几天没上这帖吧了, 预想的功能快写完了
                  差不多就缺其他两场景的预设炮阵位置数据了, 想找下前院与屋顶多炮阵的截图,或者怎样用修改器自己摆一个
                  后院泳池的可以在 LS 小游戏中摆好抓点, 其他两个场景怎样弄最方便
                  另外, 初步感觉屋顶的斜度, 不好用几行程序计算每个格子位置, 难道要一个个抓取……
                  回复风花:
                  我用的寻炮方法好像不怎么高级哟,有点手动辅助寻炮的思路,先确定阵型中所含有炮的位置,第一次寻炮根据延时准星,以后确定了循环炮序就无延迟一键打炮了
                  原不知道按键精灵的读内存方法,而且感觉读内存也有违我原先写这脚本的初衷了,访问内存有点倾向修改器的思路了……
                  还有多重点击那个,若直接在点击序列之后右键,会出现通用性问题,因为我设计的有些快捷键是选取卡片的,如果右键了,就选不上卡片了。
                  这问题用比较拗口的说法就是涉及点击序列的开闭模式。在一般操作比如打炮选卡之前都会右键一次,取消原先未完成的操作,这就叫做“左闭”。对于普通打炮操作,可以两边都封闭;但对于使用卡片,就应该“左闭右开”了,右边开放还可以允许使用鼠标灵活放置位置,键鼠合作。我还写了“半自动打炮”的过程,只激活准星先不落下,再用鼠标点哪打哪,这也是“左闭右开”的操作——臆测这功能在少炮阵中可能用得上,没有固定落点,权当可再生活樱桃使用。
                  我自己原先把多重点击想得复杂了,想把二维坐标扩展至三维坐标,第三维的数值表示该点重复点击的次数,但写着写着发现再要交互存取时太麻烦。
                  后来我干脆简化了,单独写个打炮的过程,只对炮点重复点击。只是对于其他普遍的快捷键序列只能点一次了,感觉不涉及打炮的话,点一次问题不大。


                  IP属地:广东30楼2011-04-23 23:41
                  回复
                    回复:30楼
                    额...选卡片之后右键这个的确会杯具,但是我想到的是,一般都会选卡片就用立刻用吧...用按键选卡片然后手动放感觉没意义- -另外,读内存完全跟修改器扯不上...修改器干的是写内存...
                    至于屋顶的坐标...之前写过一个的...你看看有用不...
                    Sub roof_left(x,y)
                        If x>5
                            Call Plugin.Bkgnd.LeftClick(Hwnd,x*80,y*85)
                        Else
                            Call Plugin.Bkgnd.LeftClick(Hwnd,x*80,y*85+(6-x)*20)
                        End If
                    End Sub
                    


                    IP属地:广东31楼2011-04-23 23:57
                    回复
                      前院的话就是x*80,y*100+30


                      IP属地:广东32楼2011-04-23 23:59
                      回复
                        那怎么读内存找炮,给个例子?
                        翻精品查到某帝发的反汇编基址……不是很明白
                        似乎不同版本的基址还不一样?
                        虽然不一定想读内存,但想学习下


                        IP属地:广东33楼2011-04-24 11:18
                        回复
                          今晚正想把新脚本发布的
                          但悲剧的发现原来的纳米盘正维护中,不能访问呢


                          IP属地:广东35楼2011-04-25 00:32
                          回复
                            本来同时写了个更详细点的说明文档,但万恶的度娘老是吞我排好的格式,所以准备一段段分开发了……


                            IP属地:广东39楼2011-04-25 11:28
                            回复
                              2025-08-31 19:41:39
                              广告
                              不感兴趣
                              开通SVIP免广告




                              IP属地:广东41楼2011-04-25 11:33
                              回复