吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9115|回复: 26
收起左侧

[Android 原创] [原创教程]魔性游戏-熱血!胴上げ(举高高)破解教程

[复制链接]
wushaominkk 发表于 2018-3-29 16:04
本帖最后由 wushaominkk 于 2018-3-30 10:50 编辑

最近玩了一款日文游戏熱血!胴上げ,觉得挺有意思,闲来无事就研究研究随便来个破解!
废话不多说,上图:
微信图片_20180329150028.jpg
微信图片_20180329150033.jpg
游戏很简单,就是个无脑游戏,将人跑到空中,一直刷新最高纪录!大概玩了几把,游戏有等级系统,到达了一定经验后会升级,等级越高,将人跑出去的速度越快,抛的越高,下降的速度也越来越快!
那么就开始爆破吧!
工具:AndroidKiller,Dnspy
首先用AndroidKiller将游戏反编译
QQ图片20180329105305.png
反编译后发现是unity3d的游戏
接下来用工具Dnspy编译Assembly-CSharp.dll文件,整理下思路既然是居高高的游戏那就全局搜索jump试下看如图:
QQ图片20180329105422.png
_tapToJumpLimit看字面意思亲点跳跃什么限制,也不知道是啥,点进去看看吧
QQ图片20180329105629.png
类中Ctrl+F搜索_tapToJumpLimit
[Java] 纯文本查看 复制代码
private void Start()
        {
                this._player = SingletonMonoBehaviour<GameManager>.Instance.Player;//首先初始化角色
                this._liftLv = SingletonMonoBehaviour<GameDataManager>.Instance.LoadLiftLV();//读取上升等级LoadLiftLv();
                global::Debug.Log("レベル:" + this._liftLv, null);
                this._tapToJumpLimit = 0.5f;
                foreach (Lift lift in this._liftList)
                {
                        lift.Init(this._liftLv);//初始化上升等级
                        lift.ChangeLiftImage(LiftState.LoweringArm);//下面一帮损友手臂放下动作
                }
                SingletonMonoBehaviour<FallThroughCatcher>.Instance.onPressStart += this.OnPressStart;
        }

点击LoadLiftLv()进去看看;
[Java] 纯文本查看 复制代码
public int LoadLiftLV()
        {
                int result = 1;
                decimal d = this.LoadExp();
                int num = 0;
                while ((float)num < 10f)
                {
                        if (d >= ValueData.EXP_BORDER_LIST[num])
                        {
                                result = num + 1;
                        }
                        num++;
                }
                return result;
        }

代码已经很清楚了,读取经验值赋值给变量d,判断是否满足升级条件,最后将最终的结果赋值给result,这个就是当前Lv等级,
继续深入分析:
我们再来看下这个类GameDataManager中文意思是游戏数据管理类,看看里面有什么东西
看到有个UpdateHighScore()方法,看上去是不是不开心更新最高分
[Java] 纯文本查看 复制代码
public bool UpdateHighScore(decimal score)
        {
                decimal num = this.LoadHighScore();
                base.Save("HIGH_SCORE_KEY", (!(num >= score)) ? score : num);
                return score > num;
        }

代码也很简单读取最高分,将最高分缓存到"HIGH_SCORE_KEY"参数中,这里就是修改最高分的关键点!
继续深入挖掘:
我们来挖掘下人物飞升的算法逻辑:
回到最开始_tapToJumpLimit参数,
类中Ctrl+F搜索_tapToJumpLimit上下选择
[Java] 纯文本查看 复制代码
private void LateUpdate()
        {
                if (!SingletonMonoBehaviour<GameManager>.Instance.IsPlayingGame)
                {
                        return;
                }
                if (this._player.PostionY <= this._liftLine.transform.position.y)
                {
                        this.Toss();
                }
                this._player.CheckGameOver();
                if (this._canTap)
                {
                        return;
                }
                this._tapToJumpTime += Time.deltaTime;
                if (this._tapToJumpTime >= this._tapToJumpLimit)
                {
                        this._canTap = true;
                        this._tapToJumpTime = 0f;
                }
        }

发现这段代码,判断PostionY是否小于或则等于this._liftLine.transform.position.y,然后执行Toss();抛出方法否则就gameOver,那么我们就可以猜出如果下面的损友接住人就将起抛出,没接住就游戏结束了!
我们继续看下Toss()这个方法;
[Java] 纯文本查看 复制代码
private void Toss()
        {
                if (this._canTap)
                {
                        return;
                }
                this.PlayLiftAnimation();//执行抛出动画
                float num = 1.2f + 0.05f * (float)(this._liftLv - 1);
                float num2 = (num - 0.8f) * (1f - this._tapToJumpTime / this._tapToJumpLimit);
                num2 += 0.8f;
                this._player.Toss(num2);//
                float num3 = Mathf.Min(1f, this._player.Speed / this.SPEED_LIMIT_LIST[this._liftLv - 1]);
                this._tapToJumpLimit = 0.5f - 0.48f * num3;
                this._canTap = true;
                this._tapToJumpTime = 0f;
        }

这段方法就是整个游戏最核心的算法了
_liftLv参数是当前等级
_tapToJumpTime 点击跳跃的时间
_tapToJumpLimit 点击跳跃的最大限制
_player.Speed 人物速度
this.SPEED_LIMIT_LIST[this._liftLv - 1]);最大速度
成品我就不发了,自己动手更有乐趣!

免费评分

参与人数 5威望 +2 吾爱币 +16 热心值 +4 收起 理由
haoyi888sdo + 1 + 1 谢谢@Thanks!
qtfreet00 + 2 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
6699619 + 1 谢谢@Thanks!
xinkui + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
q6687898 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1051496412 发表于 2018-6-8 20:22
wushaominkk 发表于 2018-3-29 16:27
可以的,3万米以上可以到太空了,限制是9999999米

这游戏似乎被TX厘米秀Copy了一下
 楼主| wushaominkk 发表于 2018-3-29 16:27
xyz989 发表于 2018-3-29 16:24
要是游戏有设定能弹出银河系就给力了

可以的,3万米以上可以到太空了,限制是9999999米
peterq521 发表于 2018-3-29 16:15
哈哈 这个游戏看着好好玩 有点像当年校内的踢人游戏
xyz989 发表于 2018-3-29 16:24
要是游戏有设定能弹出银河系就给力了

点评

可以的,3万米以上可以到太空了,限制是9999999米  详情 回复 发表于 2018-3-29 16:27
hearne 发表于 2018-3-29 16:41
这个游戏看起来好清奇
q6687898 发表于 2018-3-29 16:59
发帖回复,是种美德。感谢楼主分享
崑崑爱吃包子 发表于 2018-3-29 17:45
厉害呦大神
minjun2046 发表于 2018-3-29 19:23
想下载玩啊 链接呢?
luyumeng 发表于 2018-3-29 19:36
谢谢分享
唐伯虎点蚊香AQA 发表于 2018-3-29 19:48
这类游戏居然也有, 也是无聊没谁了。。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 12:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表