皇家守卫军吧 关注:88,197贴子:1,079,473

实时监控及修改表元素 #Kingdom Rush Alliance#

只看楼主收藏回复

视频来自:百度贴吧


IP属地:上海1楼2024-09-15 10:38回复
    之前讲到过,铁皮用的是Lua5.1,love0.10.2
    推荐了ZeroBrane作为IDE
    但是,不论是print(getfulldump()),还是
    ccmlog(),亦或是Paul神自己的serpent.dump
    用起来都不够方便,所以这次给大家介绍一款
    新工具————lovebird
    可以实时监控表元素,并在运行程序的过程中,
    随时修改变量值、动态加载到游戏里,颇有些
    可视化编程的味道。


    IP属地:上海2楼2024-09-15 11:03
    收起回复
      由于用到了LuaJIT,Paul神的ZBS插件realtimewatch.lua只对main.lua中的变量有效果,还是更推荐大家用lovebird.lua,鼠标点击可以更方便地层级间跳转


      IP属地:上海来自Android客户端3楼2024-09-15 11:35
      回复


        IP属地:广东来自iPhone客户端4楼2024-09-15 16:12
        收起回复
          感谢敬爱的退隐绕梦加精


          IP属地:上海7楼2024-09-25 09:56
          回复
            感謝分享!我第一次使用
            我下載了 ZeroBrane Studio 安裝完成
            用7Z 打開 Kingdom Rush Alliance.exe
            lovebird 和 realtimewatch 拖進去
            运行游戏后,浏览器访问 127.0.0.1:8000
            顯示 無法連上這個網站
            127.0.0.1 拒絕連線。
            哪個環節出問題?


            IP属地:中国台湾8楼2024-10-13 12:21
            回复
              加这句require("lovebird").update()


              IP属地:上海来自Android客户端9楼2024-10-13 12:33
              收起回复
                字数太多了,无法在同一层内回复你。私信里未关注的吧友,只能回复一次,我老是一句话没说完,第二句发送给你的时候它才提醒我,白打了好多字
                1.会使用7z窗口打开游戏主体那个.exe,并知道如何拖拽修改好的.lua到窗口中替换原始文件
                2.知道如何用lua decompiler v2反编译原始.lua文件
                3.复制原始main.lua到桌面,使用lua decompiler v2反编译main.lua,将require("lovebird").update()插入到反编译好的main.lua的function love.update(dt)这一行的下一行
                电脑不在手边,等我有空了截个图给你标注下。


                IP属地:上海来自Android客户端10楼2024-10-13 21:58
                收起回复
                  @playkof98 拳皇98看这里,main.lua的这行


                  IP属地:上海11楼2024-10-13 22:20
                  回复
                    大佬下午好!這樣是不是成功了!
                    再來我可以用 lovebird 做些什麼事呢?


                    IP属地:中国台湾13楼2024-10-14 14:12
                    收起回复
                      @playkof98
                      -
                      比如你可以先在env标签页滚动至底部找到game并点开,然后在game标签页找到store并点开,里面会出现entities,不过entities有一点复杂,所以你可以先尝试打开hero_team,team中的两个英雄其实也是entities的成员,比如你可以点开1,看到一个英雄的各种属性值,看你自己的英语水平了
                      -
                      你可以仔细看我视频中,右侧小窗口顶部env、game等都是标签,因为Lua无论多复杂都是嵌套表
                      你可以随时点击标签跳转到它所对应的层级,比如前面你点到了env/game/store/hero_team/1,但是你已经玩明白英雄1的各种属性,想要去挑战修改entities中的键值对,那你可以直接点store,然后再点开entities
                      -
                      小窗口中的键值对,左侧是key,右侧是value
                      左侧有高亮背景标注时,点击它会进入它的属性;
                      右侧有高亮背景标注时,会获取完整键名,比如前面你点开env/game/store/hero_team/1,然后你点开pos,会看到x和y,如果你点击x右侧的数值,lovebird窗口左下角的控制台中会出现x的完整键名game.store.hero_team[1].pos.x,此时如果你对它进行赋值,接着在控制台后面输入=250,将声明变成game.store.hero_team[1].pos.x=250并按下回车,你会发现游戏中的英雄1发生了位移
                      -
                      本来love引擎中,窗口左上角坐标为x=0,y=0
                      x向右为其正方向,y向下为其正方向
                      但是铁皮自己写了函数转置坐标轴,所以它们是左下角为0,0原点
                      x还是向右为正方向,但是y变成了向上为其正方向
                      -
                      另外,小窗口键值对中修改值仅限于数字、字符串和布尔值(true or false)
                      如果你看到右侧为表table:、函数function:、对象Object之类的,点击只会在控制台获取到其名称,当然你熟悉表结构的话,也可以嵌套表后对其赋值,比如令其={{{ , }, { , }},{ , }}


                      IP属地:上海14楼2024-10-14 15:50
                      收起回复
                        好的
                        感謝大佬的用心
                        我來學習!


                        IP属地:中国台湾15楼2024-10-14 17:37
                        收起回复
                          @playkof98 使用7z将Kingdom Rush Alliance.exe解压到一个文件夹
                          假设是D:\MyLuaProject\Games\Kingdom_Rush_Alliance
                          打开ZeroBrane - Project - Project Directory
                          选中Kingdom_Rush_Alliance文件夹作为项目路径
                          修改Project - Lua Interpreter为LOVE引擎
                          左侧项目文件树窗口中,双击main.lua就可以打开编辑
                          按下工具栏向右的绿色小三角,或者快捷键F5就可以启动调试


                          IP属地:上海17楼2024-10-17 09:11
                          收起回复
                            使用7z将Kingdom Rush Alliance.exe解压到一个文件夹--------OK
                            假设是D:\MyLuaProject\Games\Kingdom_Rush_Alliance-----OK
                            打开ZeroBrane - Project - Project Directory-----------------------OK
                            选中Kingdom_Rush_Alliance文件夹作为项目路径--------------OK
                            修改Project - Lua Interpreter为LOVE引擎-------------------------OK
                            左侧项目文件树窗口中,双击main.lua就可以打开编辑--------OK
                            按下工具栏向右的绿色小三角----------------------------------------按下后出現這樣的訊息


                            IP属地:中国台湾18楼2024-10-17 17:54
                            回复