美文网首页
关于flash游戏swf文件的修改

关于flash游戏swf文件的修改

作者: 陌过生人丶 | 来源:发表于2019-02-25 18:36 被阅读0次

    转载请标明出处https://www.jianshu.com/p/5d36f13b3ed0

    1.介绍:

    在游戏修改中,很难避免的会遇到flash游戏的修改,其中assets目录下的swf格式文件是整个flash游戏的游戏逻辑资源文件。

    这里简单说明一下swf文件的修改,附上修改swf文件的工具地址:http://down8.3987.com:801/2010/JPEXSFreeFlashDecompiler_3987.com.rar这里会使用到一个叫做JPEXSFreeFlashDecompiler的工具,点击下载安装之后,就可以使用这个工具打开swf文件了。2.实际操作:

    这里我在拿了一个叫做史上最贱的游戏

    (包名:air.com.spilgames.TrollFaceQuestStupidellaAndFailman)的游戏进行修改。这个游戏放到我们国内厂商的手机之后,由于某些原因点击去除广告的时候是会卡屏的。

    这里弹出无连接之后,点击取消和再试一次都是无效的,我们要做的就是让这一过程不再发生。根据思路,最好的方法就是让去广告这一点击之后的事件不再发生。这个游戏又是一个flash游戏,所有我们就使用JPEXSFreeFlashDecompiler工具打开这个游戏swf文件。打开之后界面如下:

    使用这个工具,可以提取里面的资源文件,或者查看修改脚本代码。这里我们要做的就是修改去广告这个点击事件。

    这里我们能发现点开脚本,都是我们熟悉的高级语言代码。

    这里切入点其实是这个点击图形是出现在一开始进入的页面之中的,我们翻看脚本的目录会发现一个叫做MainMenu的脚本。

    不难猜测,这个就是主页面逻辑代码了。这个时候我们可以阅读一下代码,或者搜索一下remove和removead以及广告这三个关键字,因为点击事件按钮写着”去广告”。所以我们可以通过搜索这3个关键字,很遗憾都没搜索到,这个时候我们来阅读一下代码,发现里面有一些按钮的事件,并且出现了buy关键字的对象和方法,这里我们可以阅读猜测并大致确定了。

    这些都是点击按钮附加点击事件被移除的代码,这里我们可以看到有一个叫做bundlebuy的被移除了点击事件,我们点击这个fromMainToShop进入这个方法,我们将方法内容删除,重新编译游戏发现,点击之后果然没有任何反应了,到这里好像就修改的差不多了。可是当我们进入游戏的时候发现其他位置也还是有这个按钮图形的。

    我们发现,其他位置有关广告的点击事件丝毫没有被影响,这是什么情况。那就说明我们去的并不干净,但是你要让我一个一个位置的寻找这些位置并修改,工程量有点大我不想这么做,所以我们换个思路,我们可以查看一开始我们去掉的主页面点击事件代码,看看还有哪些位置引用了这些代码。

    但是查看代码一层一层的找引用,找到具体的代码实现位置,工作量也不少,我看了一眼也还是放弃了。但是这个方法里面,有一层if语句,这是个很大的突破口。

    这个if语句里面的值英文意思是,买了,等于false的话,是说明没买,那么才执行下面的代码,那么是不是说明我们可以让这个全局变量的值恒等于true,也就是买过呢。我们ctrl+r点击进入这个值。

    查看这个全局变量,默认是false的,那么是不是我们修改成true,以及将搜索出来把这个值赋值为false的位置全部修改成true就可以了,我们点击编辑-修改-保存-保存文件。反编译运行。

    竟然连去广告的那个图像都隐藏了,这就是全局变量的好处,整个游戏逻辑代码都会使用到这个变量,当我们修改变量之后,全局任何一处相关的代码都会由于判断,不再执行会让游戏广告相关,会让游戏卡屏的代码,虽然修改的位置可能也挺多的,但是很明确也很效率。这是我第一次修改flash游戏的swf文件,希望可以帮到有需要的人。

    相关文章

      网友评论

          本文标题:关于flash游戏swf文件的修改

          本文链接:https://www.haomeiwen.com/subject/jdzgyqtx.html