台服dnf吧 关注:125,215贴子:2,085,028

如何最高性能的用nut给怪物角色添加ap

只看楼主收藏回复

添加ap,可以用ap给obj进行hp结算(技攻,白字,属强白字词条,副本减伤),ui绘制(血条百分比,异常状态)。
首先是ap的伤害结算在我测试起来就是比function getCurrentModuleDamageRate_Swordman(obj)这个函数要流畅,这个函数会严重拖慢帧数,怪越多越卡。

这个是通用的全局对象函数,可以通过这个函数给角色,怪物附加ap。
MONSTER_AP_DIR是头文件定义的全局ap,MONSTER_AP_DIR <- "ui/ap/ap_monster.nut"

我们的伤害增伤可以在这里给怪物进行血量增减结算


IP属地:广西1楼2026-02-14 22:49回复
    加载全局对象函数的方法





    IP属地:广西2楼2026-02-14 22:54
    回复
      2026-02-23 18:34:07
      广告
      不感兴趣
      开通SVIP免广告
      onmap和 onStartDungeon会在进地图的时候进行加在,好处是不会一直刷新,流畅帧数高。
      缺点是对于图内被召唤脚下有光圈的怪物无法生效。
      function procAppend_Swordman(obj)的好处是毫秒刷新,不停检测,坏处就是卡,不流畅。
      这里最推荐的就是function onAttack_PassiveObject(passiveobj, damager, bounding_box, is_stuck)和function onAttack_Swordman(obj, damager, bounding_box, is_stuck),用来写增伤最合适不过了,只有攻击的时候才触发,不攻击不触发,性能好到起飞。


      IP属地:广西3楼2026-02-14 22:59
      收起回复



        只用一个ap实现了ui血条百分比,异常状态绘制,nut词条增伤,后续还可以再次扩展,保证了游戏的高性能和流程度,帧数高。
        通过快速返回判断,及时退出也是优化提升性能的思路。


        IP属地:广西4楼2026-02-14 23:04
        回复
          非常好的帖子,学习了


          IP属地:广东5楼2026-02-15 00:00
          回复
            先顶后看,谢谢大佬。


            IP属地:广东来自Android客户端6楼2026-02-15 00:33
            回复
              我还没测过召唤系的角色,如果用攻击时触发,如果角色本体不攻击,召唤物攻击是否不能附加ap,如果不能附加,这类的角色就换种附加ap的方式吧。


              IP属地:广西来自Android客户端7楼2026-02-15 02:01
              回复
                还有一个函数是角色被攻击时ondamage_角色名也可以用来附加ap,自己灵活选择。附加全局ap的方式非常多,setstate,动画结束时,好多好多。按需设置,尽可能避免每帧都会刷新的性能就高就流畅。


                IP属地:广西来自Android客户端8楼2026-02-15 02:14
                回复
                  2026-02-23 18:28:07
                  广告
                  不感兴趣
                  开通SVIP免广告
                  附加以前先检查目标对象身上是否有子ap,如果没有就再附加,如果有就快速返回。目标对象死亡or不合法不存在,清除ap,子ap。差不多就这样了吧,还可以在一些每毫秒都刷新的函数做一个小的检测,如果目标对象死亡,不存在不合法就清除ap子ap。大家自己尝试吧


                  IP属地:广西来自Android客户端9楼2026-02-15 02:29
                  回复
                    不懂帮顶


                    IP属地:安徽来自Android客户端10楼2026-02-15 08:13
                    回复
                      顶一下


                      IP属地:四川11楼2026-02-15 09:22
                      回复
                        非常好的帖子,支持楼主


                        IP属地:广东来自Android客户端12楼2026-02-15 09:45
                        回复
                          使用obj进行传参附加全局ap的,就需要进行对象转化



                          IP属地:广西14楼2026-02-15 09:48
                          回复
                            牛逼 谢谢大佬


                            IP属地:湖南15楼2026-02-15 10:04
                            回复
                              2026-02-23 18:22:07
                              广告
                              不感兴趣
                              开通SVIP免广告
                              先看后顶,虽然现在还看不懂,但是知道饭已经喂碗里了。


                              IP属地:北京16楼2026-02-15 10:12
                              回复