首页 > 解决方案 > 找出 _local_x 或 _arg_x 是什么意思?

问题描述

我正在处理一个大型 Flash 项目。我试过“Goto Declaration”,但这似乎没有帮助。顺便说一句,我正在使用 FlashDevelop。是的,我可以完美地编译和构建 100% 的工作源。这是一个代码示例。我知道您对此无能为力,但请告诉我如何使用它。

public function aim_(_arg_1:Vector3D, _arg_2:Vector3D, _arg_3:ProjectileProperties):Vector3D
        {
            var _local_4:Vector3D;
            var _local_5:GameObject;
            var _local_6:Vector3D;
            var _local_7:Number;
            var _local_8:Number;
            var _local_9:int;
            var _local_10:Boolean;
            var _local_11:int;
            var _local_12:Boolean;
            var _local_13:* = undefined;
            var _local_14:int = Parameters.data_.aimMode;
            var _local_15:Number = (_arg_3.speed_ / 10000);
            var _local_16:Number = ((_local_15 * _arg_3.lifetime_) + ((Parameters.data_.Addone) ? 1 : 0));
            var _local_17:Number = 0;
            var _local_18:Number = int.MAX_VALUE;
            var _local_19:Number = int.MAX_VALUE;
            aimAssistTarget = null;
            for each (_local_5 in map_.goDict_)
            {
                if (_local_5.props_.isEnemy_)
                {
                    _local_10 = false;
                    for each (_local_11 in Parameters.data_.AAException)
                    {
                        if (_local_11 == _local_5.props_.type_)
                        {
                            _local_10 = true;
                            break;
                        };
                    };

标签: actionscript-3flash

解决方案


您要实现的是对反编译代码进行逆向工程。使用“_local”变量,您需要调查它们被分配了哪些值,它们参与了哪些算法,在这里您只需要完整地阅读这个单个函数即可辨别这些局部变量的含义。但是,您还需要了解许多命名参数才能获得其中的一些含义。例如,_local_11遍历一些Parameters.data_.AAException整数列表,并与当前的外部循环迭代器进行比较props.type_,因此“AAException”应表示“AA 豁免”并_local_10提供检查结果,当前敌人是否豁免 AA(无论是什么 AA)。等等。

_arg_X变量相同,您需要找出从调用函数的任何位置传递给函数的内容,并检索这些参数的上下文,还要考虑它们的类型,就像这里_arg3的“ProjectileProperties”类型一样,这意味着这个函数应该与一些弹丸,其属性以某种方式影响其结果。很可能它需要两个射弹向量(或源,这在此代码之外)和目标(或速度,此处相同),并生成另一个未知用途的向量。

当你研究过这样的每一个函数时,你会发现一个拼图的很多部分,你可以通过引用来组合它们,发现所有结合你反编译的任何应用程序代码的算法。然后,您将能够进行您最初想要的任何类型的有针对性的修改。但是,是的,如果你能从第一次创建这个的人那里获得实际的资源,那就更好了。

简而言之:思考。想,想,想。


推荐阅读